[development] How to add user role during registration with custom form

Steve Edwards killshot91 at gmail.com
Fri Feb 26 21:49:02 UTC 2010

I took over a site that uses a custom registration form that directly calls user_register_submit directly, and I need to have a user role added to this user when this form is submitted.  However, I can't add the value to $form_state['values']['roles'] because the function errors out if there is a roles array because it is seen as a 'malicious attempt to alter protected user fields.'  Since that function then calls user_save, it seems that once the user is saved, I need to 1) load the user I just created, 2) add the role to the object, and 3) save it again.  However, in order to call user_load, I need the uid, which isn't returned from user_register_submit.  The only logical thing I can think to do is query the users table with the user name I just created (entered as part of the form), get the rid, and then call user_load and do my thing.

Is there a better (and easier) way to do this that I'm missing, or am I on the right track?



More information about the development mailing list