[development] Assigning user to roles programatically

Adrian Rossouw adrian at bryght.com
Fri Jan 27 08:18:36 UTC 2006


On 27 Jan 2006, at 4:39 AM, Rob Thorne wrote:

>
> When do you call these functions?  As part of which hook?  I had  
> tried to add it to the "user add" admin page using hook_user, but  
> as Yoda once said, "Work it did not".

The problem with doing it as part of the user hook is that it saves  
at the very end of the hook. and one of the things the user hook does  
is delete all the roles and then
add only the new ones.

You can still modify the $edit variable and change what was 'actually  
submitted'.

function module_user($op, &$edit, &$user) {
     switch ($op) {
       case 'insert' :
         $edit['roles'][_user_get_rid('administrator')] = '';
         $edit['roles'] = array_flip(array_keys($edit['roles'])); //  
I am not sure it's strictly necessary, but it maintains the format  
that the modules are expecting, so it can't hurt
         break;
    }
}

function _user_get_rid($name) {
   return db_result(db_query("SELECT rid FROM {role} WHERE name ='%s'  
limit 1", $name));
}


--
Adrian Rossouw
Drupal developer and Bryght Guy
http://drupal.org | http://bryght.com




More information about the development mailing list