[XenConcept] Linked Accounts

[XenConcept] Linked Accounts [Paid] 2.4.5 Patch 1

No permission to buy ($40.00)
That´s great and will require me another license for the 2nd domain
you are amazing.

i will get those screenshots soon. too stoned right now.

All the requested features will be available before December.

Can´t give you screenshots of a function non-existent, but I´ll do my upmost to describe it accuratly ;)
Linked Acccounts is a helpful tool for providing users the option to add a second, connected account for different use cases. But in most use cases a user only needs one or two linked accounts - and you as a webmaster don´t want users to have unlimited linked accounts, since this 1. will undoubtly be abused, 2. leads to greater confusion for visitors and members, when linked accounts of a single user interact with each other in discussions, 3. supports starting flamewars, trolling etc and adds a huge load to the moderation work since you first have to figure out who is who to recognize that this is a trolling in the first place. So, in fact, I can´t imagine a use case to allow for unlimited linked accounts at all. On the contrary, unlimited linked accounts would make me not use the add-on at all on live forums. But that´s my point of view regarding linked accounts in general.

Regarding limiting the number of linked accounts, the idea behind is quite simple. If you have to use paid usergroups with subscriptions to monitize your forums because you don´t want to have ads in it, Linked Accounts shouldn´t be available for everyone. Instead - as in my case - I want to have
  • no Linked Accounts for the free membership
  • [x] Linked Accounts for the paid usergroup #1
  • [y] Linked Accounts for the paid usergroup #2
  • [z] Linked Accounts for the paid usergroup #3
  • aso..
That way it adds to making the subscriptions more attractive.

Only this point will be added before November
 
Jesus.. what a nightmare, especially in terms of GDPR since he´s located in france. @XenConcept , make sure to comply with the regulations and to report the incident to your country´s data privacy officer, before you´ll get hit by an official warning including a very expensive fine.
 
The menu is well displayed. The icon used and "font awesome" except that UIX uses icon material.

Add this to the extra.less template

Code:
.p-navgroup-link--linked i:after
{
    <xf:macro template="uix_icons.less" name="content" arg-icon="link" />
}
Hey Remi,
even when this solves the Desktop view, unfortunal this doesn´t solve the problem for the UI.X mobile version, where the problem is even bigger: on Smartphones the UI.X "What´s new" button isn´t available anymore, but the Linked Account one is. Disabling Linked Accounts brings the Whats new button back. Could you provide a fix for this, please?
 
is there a way where the accounts can be alphabetized? Some of my members are linking over 40 accounts so it's hard for them to find the ones they want if they aren't in alphabetical order
 
XenConcept updated [XenConcept] Linked Accounts with a new update entry:

New Release 2.0.5 Beta 1

Bug Fix:
  • When associating an existing account the user group of the linked accounts is not applied.
New Features:
  • Add "clear" button in the linked account logs
  • Add a style property to hide the "linked account" navigation button on mobiles
  • Add new options
    • Maximum linked account in popup
    • Maximum linked account
  • Add a new action "Sub Accounts" in the moderators tools on the member profile.
  • Add a tab system on the account...

Read the rest of this update entry...
 
Hey Remi,
even when this solves the Desktop view, unfortunal this doesn´t solve the problem for the UI.X mobile version, where the problem is even bigger: on Smartphones the UI.X "What´s new" button isn´t available anymore, but the Linked Account one is. Disabling Linked Accounts brings the Whats new button back. Could you provide a fix for this, please?

Hello,
The best is to contact the author of the style. Have you tried to disable any other add-ons?

is there a way where the accounts can be alphabetized? Some of my members are linking over 40 accounts so it's hard for them to find the ones they want if they aren't in alphabetical order

Hello,

I will studied your request.

Regards
 
I just upgraded from 2.0.3 to 2.0.5 Beta 1 and linking an existing account it's not working.. those 2 errors are generated on admin panel
Attempted to convert object to integer [sub_user_id]

Code:
InvalidArgumentException: Attempted to convert object to integer [sub_user_id] src/XF/Mvc/Entity/Entity.php:740
Generated by: User Jan 21, 2020 at 11:50 PM
Stack trace
#0 src/XF/Mvc/Entity/Entity.php(618): XF\Mvc\Entity\Entity->_castValueToType(Object(SV\ElasticSearchEssentials\XF\Entity\User), 'sub_user_id', 2, Array)
#1 src/XF/Mvc/Entity/Entity.php(548): XF\Mvc\Entity\Entity->set('sub_user_id', Object(SV\ElasticSearchEssentials\XF\Entity\User))
#2 src/addons/XenConcept/LinkedAccount/XF/Entity/User.php(112): XF\Mvc\Entity\Entity->__set('sub_user_id', Object(SV\ElasticSearchEssentials\XF\Entity\User))
#3 src/addons/XenConcept/LinkedAccount/Service/SubAccount/Linked.php(135): XenConcept\LinkedAccount\XF\Entity\User->getNewSubAccount(Object(SV\ElasticSearchEssentials\XF\Entity\User))
#4 src/XF/Service/ValidateAndSavableTrait.php(40): XenConcept\LinkedAccount\Service\SubAccount\Linked->_save()
#5 src/addons/XenConcept/LinkedAccount/XF/Pub/Controller/Account.php(78): XenConcept\LinkedAccount\Service\SubAccount\Linked->save()
#6 src/XF/Mvc/Dispatcher.php(350): XenConcept\LinkedAccount\XF\Pub\Controller\Account->actionLinkedAccountLinkExisting(Object(XF\Mvc\ParameterBag))
#7 src/XF/Mvc/Dispatcher.php(257): XF\Mvc\Dispatcher->dispatchClass('XF:Account', 'LinkedAccountLi...', Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Account), NULL)
#8 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Account), NULL)
#9 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#10 src/XF/App.php(2184): XF\Mvc\Dispatcher->run()
#11 src/XF.php(391): XF\App->run()
#12 index.php(20): XF::runApp('XF\\Pub\\App')
#13 {main}

-------------

Previous InvalidArgumentException: Attempted to convert object to integer - src/XF/Mvc/Entity/ValueFormatter.php:141
#0 src/XF/Mvc/Entity/Entity.php(736): XF\Mvc\Entity\ValueFormatter->castValueToType(Object(SV\ElasticSearchEssentials\XF\Entity\User), 2, Array)
#1 src/XF/Mvc/Entity/Entity.php(618): XF\Mvc\Entity\Entity->_castValueToType(Object(SV\ElasticSearchEssentials\XF\Entity\User), 'sub_user_id', 2, Array)
#2 src/XF/Mvc/Entity/Entity.php(548): XF\Mvc\Entity\Entity->set('sub_user_id', Object(SV\ElasticSearchEssentials\XF\Entity\User))
#3 src/addons/XenConcept/LinkedAccount/XF/Entity/User.php(112): XF\Mvc\Entity\Entity->__set('sub_user_id', Object(SV\ElasticSearchEssentials\XF\Entity\User))
#4 src/addons/XenConcept/LinkedAccount/Service/SubAccount/Linked.php(135): XenConcept\LinkedAccount\XF\Entity\User->getNewSubAccount(Object(SV\ElasticSearchEssentials\XF\Entity\User))
#5 src/XF/Service/ValidateAndSavableTrait.php(40): XenConcept\LinkedAccount\Service\SubAccount\Linked->_save()
#6 src/addons/XenConcept/LinkedAccount/XF/Pub/Controller/Account.php(78): XenConcept\LinkedAccount\Service\SubAccount\Linked->save()
#7 src/XF/Mvc/Dispatcher.php(350): XenConcept\LinkedAccount\XF\Pub\Controller\Account->actionLinkedAccountLinkExisting(Object(XF\Mvc\ParameterBag))
#8 src/XF/Mvc/Dispatcher.php(257): XF\Mvc\Dispatcher->dispatchClass('XF:Account', 'LinkedAccountLi...', Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Account), NULL)
#9 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Account), NULL)
#10 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#11 src/XF/App.php(2184): XF\Mvc\Dispatcher->run()
#12 src/XF.php(391): XF\App->run()
#13 index.php(20): XF::runApp('XF\\Pub\\App')
#14 {main}

Request state
array(4) {
  ["url"] => string(37) "/account/linked-account/link-existing"
  ["referrer"] => bool(false)
  ["_GET"] => array(1) {
    ["/account/linked-account/link-existing"] => string(0) ""
  }
  ["_POST"] => array(6) {
    ["login"] => string(12) "User2"
    ["password"] => string(8) "********"
    ["_xfToken"] => string(8) "********"
    ["_xfRequestUri"] => string(23) "/account/linked-account"
    ["_xfWithData"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
  }
}


_validate in XenConcept\LinkedAccount\Service\SubAccount\Linked must return an array

Code:
LogicException: _validate in XenConcept\LinkedAccount\Service\SubAccount\Linked must return an array src/XF/Service/ValidateAndSavableTrait.php:20
Generated by: User Jan 22, 2020 at 12:00 AM
Stack trace
#0 src/addons/XenConcept/LinkedAccount/XF/Pub/Controller/Account.php(73): XenConcept\LinkedAccount\Service\SubAccount\Linked->validate(NULL)
#1 src/XF/Mvc/Dispatcher.php(350): XenConcept\LinkedAccount\XF\Pub\Controller\Account->actionLinkedAccountLinkExisting(Object(XF\Mvc\ParameterBag))
#2 src/XF/Mvc/Dispatcher.php(257): XF\Mvc\Dispatcher->dispatchClass('XF:Account', 'LinkedAccountLi...', Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Account), NULL)
#3 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ElasticSearchEssentials\XF\Pub\Controller\Account), NULL)
#4 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#5 src/XF/App.php(2184): XF\Mvc\Dispatcher->run()
#6 src/XF.php(391): XF\App->run()
#7 index.php(20): XF::runApp('XF\\Pub\\App')
#8 {main}

Request state
array(4) {
  ["url"] => string(37) "/account/linked-account/link-existing"
  ["referrer"] => string(41) "https://forum.com/account/linked-account"
  ["_GET"] => array(1) {
    ["/account/linked-account/link-existing"] => string(0) ""
  }
  ["_POST"] => array(6) {
    ["login"] => string(4) "7768"
    ["password"] => string(8) "********"
    ["_xfToken"] => string(8) "********"
    ["_xfRequestUri"] => string(23) "/account/linked-account"
    ["_xfWithData"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
  }
}

When add-on is disabled new users can't register. This error is generated
MySQL query error [1364]: Field 'xc_la_user_ids' doesn't have a default value

Code:
XF\Db\Exception: MySQL query error [1364]: Field 'xc_la_user_ids' doesn't have a default value src/XF/Db/AbstractStatement.php:228
Generated by: Unknown account Jan 22, 2020 at 12:06 AM
Stack trace
INSERT  INTO `xf_user` (`visible`, `activity_visible`, `user_group_id`, `timezone`, `language_id`, `xfa_cui_type`, `xfa_cui_params`, `username`, `email`, `user_state`, `privacy_policy_accepted`, `terms_accepted`, `display_style_group_id`, `secondary_group_ids`, `secret_key`, `user_id`, `style_id`, `permission_combination_id`, `message_count`, `alerts_unread`, `conversations_unread`, `register_date`, `last_activity`, `trophy_points`, `avatar_date`, `avatar_width`, `avatar_height`, `avatar_highdpi`, `gravatar`, `is_moderator`, `is_admin`, `is_staff`, `is_banned`, `reaction_score`, `custom_title`, `warning_points`, `thdonate_total_donation`, `thdonate_total_public_donation`, `thdonate_total_anonymous_donation`, `thdonate_num_donation`, `thdonate_num_public_donation`, `thdonate_num_anonymous_donation`, `nf_tickets_count`, `xfrm_resource_count`, `useress_tags`, `brms_statistic_perferences`, `brms_limit_cache`, `bratr_receive_ratings`, `bratr_receive_rating_count`, `bratr_be_donated_ratings`, `bratr_ratings`, `xfa_cui_noanim`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
------------

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL query err...', 1364, 'HY000')
#1 src/XF/Db/Mysqli/Statement.php(77): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1364, 'HY000')
#2 src/XF/Db/AbstractAdapter.php(94): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(218): XF\Db\AbstractAdapter->query('INSERT  INTO `x...', Array)
#4 src/XF/Mvc/Entity/Entity.php(1452): XF\Db\AbstractAdapter->insert('xf_user', Array, false)
#5 src/XF/Mvc/Entity/Entity.php(1184): XF\Mvc\Entity\Entity->_saveToSource()
#6 src/XF/Service/User/Registration.php(279): XF\Mvc\Entity\Entity->save()
#7 src/addons/SV/ModeratorEssentials/XF/Service/User/Registration.php(22): XF\Service\User\Registration->_save()
#8 src/XF/Service/ValidateAndSavableTrait.php(40): SV\ModeratorEssentials\XF\Service\User\Registration->_save()
#9 src/XF/Pub/Controller/Register.php(419): XF\Service\User\Registration->save()
#10 src/addons/OzzModz/Spaminator/XF/Pub/Controller/Register.php(165): XF\Pub\Controller\Register->actionRegister()
#11 src/XF/Mvc/Dispatcher.php(350): OzzModz\Spaminator\XF\Pub\Controller\Register->actionRegister(Object(XF\Mvc\ParameterBag))
#12 src/XF/Mvc/Dispatcher.php(257): XF\Mvc\Dispatcher->dispatchClass('XF:Register', 'Register', Object(XF\Mvc\RouteMatch), Object(OzzModz\Spaminator\XF\Pub\Controller\Register), NULL)
#13 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(OzzModz\Spaminator\XF\Pub\Controller\Register), NULL)
#14 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#15 src/XF/App.php(2184): XF\Mvc\Dispatcher->run()
#16 src/XF.php(391): XF\App->run()
#17 index.php(20): XF::runApp('XF\\Pub\\App')
#18 {main}

Request state
array(4) {
  ["url"] => string(18) "/register/register"
  ["referrer"] => bool(false)
  ["_GET"] => array(1) {
    ["/register/register"] => string(0) ""
  }
  ["_POST"] => array(15) {
    ["73456de8eff6c057ea6f1c8f4249a7440690b1bc"] => string(13) "name"
    ["58b84796a4c976308388a38a6640f691cf293b0f"] => string(18) "email@gmail.com"
    ["url"] => string(0) ""
    ["2612a4d05946eb78a04c29f7bcd5863cfad6a9f2"] => string(8) "********"
    ["password_confirm"] => string(8) "********"
    ["additional_security"] => string(0) ""
    ["g-recaptcha-response"] => string(526) "03AOLTBLTU0rEx6fuEm1BqVQacV8VhV5LA3NX7ODKt9Zfnv6gHxphzMg80suXzsyqa7FAiQY1NxI4lbhnbGSYBpLHuzqONLtUw69ygHh7JujXwLclDa8du8KW9mq8YgUPrRy9YRO-0_LgEWwKpdYua157tz4kX87o72gyCuz0vPxTvxuA7Htxl6zX9DpgZWZxXkgMMhi_iRD8ZMjxMej8NEv7KrnhIQsOmo8P5TRphi7OCFLKkk_n2aUoj4LdfQ6x6r4kk5OIAXdYHwq5HdKJA-bX2o_rQsDr18llCKxapJsQvKOMRSrQvtmx3QtfdeOU-oCXwUaHh_zMQc0lv4amShhUPpfvWSWlyikhoQVyXPuTFr_U70QMsBrAJSHtJk8xXWTcvQ9KXTBbElywHludIEuT-jIPw3jFjI2du7cgGLc5TKxEhD_d8dd8dPsItegDcJtsKdiepIQTtB-Th4kU7IhlEFc0FXWtUvG74rGqALv2i-abuONC3LcobwnAzvOZIVX09MCO-xLid"
    ["accept"] => string(1) "1"
    ["website_code"] => string(0) ""
    ["reg_key"] => string(16) "QiL7MCrS84toHbB9"
    ["25d312d8ed3b0e2d7fb4609877d9d2e7ddd78424"] => string(19) "America/Los_Angeles"
    ["_xfToken"] => string(8) "********"
    ["_xfRequestUri"] => string(10) "/register/"
    ["_xfWithData"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
  }
}
 
BassMan,
would it be infamous to ask you to make it compatible with UI.X, too? Just encountered the same problem in UI.X, while the fix works perfect for the default style..
I'll see what I can do when I find some time.
 
  • Like
Reactions: m24
Top Bottom