diff options
author | Dries Buytaert <dries@buytaert.net> | 2011-05-14 16:29:48 -0400 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2011-05-14 16:29:48 -0400 |
commit | 2c7a84fd32eebf124135c580dfafe84816b3859e (patch) | |
tree | 4d5713f998f51f75d7c7b175331cf5fa5618e994 | |
parent | 2646b43acdd3cf1e11319d8ea5bec01d9eaac2a2 (diff) | |
download | brdo-2c7a84fd32eebf124135c580dfafe84816b3859e.tar.gz brdo-2c7a84fd32eebf124135c580dfafe84816b3859e.tar.bz2 |
- Patch #1119158 by skwashd: Added user_role_save() doesn't implement a presave hook.
-rw-r--r-- | modules/user/user.api.php | 19 | ||||
-rw-r--r-- | modules/user/user.module | 4 |
2 files changed, 23 insertions, 0 deletions
diff --git a/modules/user/user.api.php b/modules/user/user.api.php index b674b12d4..6adcf6d1e 100644 --- a/modules/user/user.api.php +++ b/modules/user/user.api.php @@ -367,6 +367,25 @@ function hook_user_view_alter(&$build) { } /** + * Inform other modules that a user role is about to be saved. + * + * Modules implementing this hook can act on the user role object before + * it has been saved to the database. + * + * @param $role + * A user role object. + * + * @see hook_user_role_insert() + * @see hook_user_role_update() + */ +function hook_user_role_presave($role) { + // Set a UUID for the user role if it doesn't already exist + if (empty($role->uuid)) { + $role->uuid = uuid_uuid(); + } +} + +/** * Inform other modules that a user role has been added. * * Modules implementing this hook can act on the user role object when saved to diff --git a/modules/user/user.module b/modules/user/user.module index 92a55bcf4..204155a4c 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -2828,6 +2828,10 @@ function user_role_save($role) { $query->addExpression('MAX(weight)'); $role->weight = $query->execute()->fetchField() + 1; } + + // Let modules modify the user role before it is saved to the database. + module_invoke_all('user_role_presave', $role); + if (!empty($role->rid) && $role->name) { $status = drupal_write_record('role', $role, 'rid'); module_invoke_all('user_role_update', $role); |