LAPS Posted January 8, 2018 Posted January 8, 2018 I am using the LoginRegister module and I would like to set custom roles for new registered users. I read the documentation and the LoginRegister.module source code. In the latter there is: * CONFIGURATION PROPERTIES * [...] * @property array $registerRoles Name of roles to add to users created from register form. * [...] I am not sure how to set roles, but I am pretty sure it should be made in a hook (maybe, the 'createUserReady'). Can you help me in setting custom roles for new registered users?
flydev Posted January 9, 2018 Posted January 9, 2018 (edited) I needed something similar today, still working on it. To get you started (it require more check in the hook), in ready.php : <?php wire()->addHookBefore('LoginRegister::createdUser', function($event) { $u = $event->arguments[0]; $u->roles->add(wire('roles')->get("custom-role")); $u->save(); }); Edit: used LoginRegister::createdUser instead because the role was added but not took into account. Edited January 9, 2018 by flydev hook change 2
Marco Ro Posted September 20, 2018 Posted September 20, 2018 Hi @flydev! I try to use this hook, but doesn't work for me. If I use $u->roles->add(wire('roles ')->get ("bs-user")) give me an error "unexpected $u (T_VARIABLE) I try to use $u->addRole('bs-user') like is in the documentation, but also this not work. I try also to use $u->of(false) ... $u->of(true) for see if need a new formatting before assigning values to a user. But the user does not register. How can I add a specific role from a hook? UPDATE: The problem not was wire()->addHookBefore('LoginRegister::createdUser', function($event) { $u = $event->arguments[0]; $u->addRole('bs-user'); $u->save(); }); But in the way I rendering the registration form: If I use $input->get->register = 1 for rendering only the registration form the hook doesn't work. I have to call also the login form <?php $login = $modules->get('LoginRegister'); echo $login->execute(); $Register = $modules->get('LoginRegister'); $input->get->register = 1; echo $Register->execute(); ?>
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now