[development] How to add user role during registration with custom form
nan wich
nan_wich at bellsouth.net
Fri Feb 26 23:40:48 UTC 2010
You don't need to load the whole user object to do this - way too much potential overhead.
$uid = db_result(db_query("SELECT uid FROM {users} WHERE name = '%s'", $name_you_just_got));
db_query("INSERT INTO {users_roles} (uid, rid) VALUES(%d, %d)", $uid, $rid_of_role_to_add);
Nancy E. Wichmann, PMP
Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr.
________________________________
From: Steve Edwards <killshot91 at gmail.com>
To: Drupal Development <development at drupal.org>
Sent: Fri, February 26, 2010 4:49:02 PM
Subject: [development] How to add user role during registration with custom form
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?
Thanks.
Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20100226/01ed8860/attachment.html
More information about the development
mailing list