--- apply_for_role.module.orig 2008-12-28 20:16:56.000000000 -0300 +++ apply_for_role.module 2008-12-28 21:02:30.000000000 -0300 @@ -454,13 +454,20 @@ function apply_for_role_remove_apply($us function apply_for_role_add_role($uid, $rid) { if (!in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) { - db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $uid, $rid); + $account = user_load(array('uid' => $uid)); + $myroles = $account->roles; + $rolenames = user_roles(TRUE); + $myroles[$rid] = $rolenames[$rid]; + user_save($account, array('roles' => $myroles)); } } function apply_for_role_delete_role($uid, $rid) { if (!in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) { - db_query('DELETE FROM {users_roles} WHERE uid = %d AND rid = %d', $uid, $rid); + $account = user_load(array('uid' => $uid)); + $myroles = $account->roles; + unset($myroles[$rid]); + user_save($account, array('roles' => $myroles)); } }