本文整理汇总了PHP中user_role_save函数的典型用法代码示例。如果您正苦于以下问题:PHP user_role_save函数的具体用法?PHP user_role_save怎么用?PHP user_role_save使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了user_role_save函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createConsumer
/**
* @see LdapAuthorizationConsumerAbstract::createConsumer
*/
public function createConsumer($consumer_id, $consumer)
{
$roles_by_consumer_id = $this->existingRolesByRoleName();
$existing_role = isset($roles_by_consumer_id[$consumer_id]) ? $roles_by_consumer_id[$consumer_id] : FALSE;
if ($existing_role) {
return FALSE;
// role exists
} elseif (drupal_strlen($consumer_id) > 63) {
watchdog('ldap_authorization_drupal_role', 'Tried to create drupal role
with name of over 63 characters (%group_name). Please correct your
drupal ldap_authorization settings', array('%group_name' => $consumer_id));
return FALSE;
}
$new_role = new stdClass();
$new_role->name = empty($consumer['value']) ? $consumer_id : $consumer['value'];
if (!($status = user_role_save($new_role))) {
// if role is not created, remove from array to user object doesn't have it stored as granted
watchdog('user', 'failed to create drupal role %role in ldap_authorizations module', array('%role' => $new_role->name));
return FALSE;
} else {
$roles_by_consumer_id = $this->existingRolesByRoleName(TRUE);
// flush existingRolesByRoleName cache after creating new role
watchdog('user', 'created drupal role %role in ldap_authorizations module', array('%role' => $new_role->name));
}
return TRUE;
}
示例2: createConsumers
/**
* extends createConsumer method of base class
*
* creates of drupal roles may be mixed case. drupal doesn't
* differentiate, so case is ignored in comparing, but preserved
* for the actual created role name saved.
*
* **/
public function createConsumers($creates_mixed_case)
{
// 1. determins difference between existing drupal roles and ones that are requested to be created
$existing_roles_mixed_case = $this->availableConsumerIDs();
$creates_lower_case = array_map('drupal_strtolower', $creates_mixed_case);
$existing_roles_lower_case = array_map('drupal_strtolower', $existing_roles_mixed_case);
$roles_map_lc_to_mixed_case = array_combine($creates_lower_case, $creates_mixed_case);
$roles_to_create = array_unique(array_diff($creates_lower_case, $existing_roles_lower_case));
// 2. create each role that is needed
foreach ($roles_to_create as $i => $role_name_lowercase) {
if (strlen($role_name_lowercase) > 63) {
watchdog('ldap_authorization_drupal_role', 'Tried to create drupal role with name of over 63 characters (%group_name). Please correct your drupal ldap_authorization settings', array('%group_name' => $role_name_lowercase));
continue;
}
$role = new stdClass();
$role->name = $roles_map_lc_to_mixed_case[$role_name_lowercase];
if (!($status = user_role_save($role))) {
// if role is not created, remove from array to user object doesn't have it stored as granted
watchdog('user', 'failed to create drupal role %role in ldap_authorizations module', array('%role' => $role->name));
} else {
$created[] = $role->name;
watchdog('user', 'drupal role %role in ldap_authorizations module', array('%role' => $role->name));
}
}
// 3. return all existing user roles and flush cache of consumer ids.
$refreshed_available_consumer_ids = $this->availableConsumerIDs(TRUE);
if ($this->detailedWatchdogLog) {
$watchdog_tokens = array('%roles_to_create' => join(", ", $roles_to_create));
$watchdog_tokens = array('%existing_roles' => join(", ", $existing_roles_mixed_case));
$watchdog_tokens = array('%refreshed_available_consumer_ids' => join(", ", $refreshed_available_consumer_ids));
watchdog('ldap_authorization', 'LdapAuthorizationConsumerDrupalRole.createConsumers()
roles to create: %roles_to_create;
existing roles: %existing_roles;
available roles after createConsumers call: %refreshed_available_consumer_ids;', $watchdog_tokens, WATCHDOG_DEBUG);
}
return $refreshed_available_consumer_ids;
// return actual roles that exist, in case of failure
}
示例3: backdropCreateRole
/**
* Creates a role with specified permissions.
*
* @param $permissions
* Array of permission names to assign to role.
* @param $name
* (optional) String for the name of the role. Defaults to a random string.
* @return
* Role name of newly created role, or FALSE if role creation failed.
*/
protected function backdropCreateRole(array $permissions, $name = NULL)
{
// Generate random name if it was not passed.
if (!$name) {
$name = $this->randomName();
}
// Check the all the permissions strings are valid.
if (!$this->checkPermissions($permissions)) {
return FALSE;
}
// Create new role.
$role = new stdClass();
$role->name = $name;
$role->label = $name;
user_role_save($role);
user_role_grant_permissions($role->name, $permissions);
$role = user_role_load($role->name);
$this->assertTrue(isset($role->name), t('Created role of name: @name', array('@name' => $name)), t('Role'));
if ($role && !empty($role->name)) {
$this->assertTrue(count($role->permissions) == count($permissions), t('Created permissions: @perms', array('@perms' => implode(', ', $permissions))), t('Role'));
return $role->name;
} else {
return FALSE;
}
}
示例4: drupalCreateRole
/**
* Internal helper function; Create a role with specified permissions.
*
* @param $permissions
* Array of permission names to assign to role.
* @param $name
* (optional) String for the name of the role. Defaults to a random string.
* @return
* Role ID of newly created role, or FALSE if role creation failed.
*/
protected function drupalCreateRole(array $permissions, $name = NULL)
{
// Generate random name if it was not passed.
if (!$name) {
$name = $this->randomName();
}
// Check the all the permissions strings are valid.
if (!$this->checkPermissions($permissions)) {
return FALSE;
}
// Create new role.
$role = new stdClass();
$role->name = $name;
user_role_save($role);
user_role_grant_permissions($role->rid, $permissions);
$this->assertTrue(isset($role->rid), t('Created role of name: @name, id: @rid', array('@name' => $name, '@rid' => isset($role->rid) ? $role->rid : t('-n/a-'))), t('Role'));
if ($role && !empty($role->rid)) {
$count = db_query('SELECT COUNT(*) FROM {role_permission} WHERE rid = :rid', array(':rid' => $role->rid))->fetchField();
$this->assertTrue($count == count($permissions), t('Created permissions: @perms', array('@perms' => implode(', ', $permissions))), t('Role'));
return $role->rid;
} else {
return FALSE;
}
}
示例5: createRole
/**
* Create user role, given its name and weight.
*
* @param string $name
* Role machine name.
* @param int $weight
* Role weight.
*
* @return \stdClass
* Role object.
*/
public function createRole($name, $weight = 0)
{
$role = new \stdClass();
$role->name = $name;
$role->weight = $weight;
user_role_save($role);
return $role;
}
示例6: roleCreate
/**
* {@inheritDoc}
*/
public function roleCreate(array $permissions)
{
// Both machine name and permission title are allowed.
$all_permissions = $this->getAllPermissions();
foreach ($permissions as $key => $name) {
if (!isset($all_permissions[$name])) {
$search = array_search($name, $all_permissions);
if (!$search) {
throw new \RuntimeException(sprintf("No permission '%s' exists.", $name));
}
$permissions[$key] = $search;
}
}
// Create new role.
$role = new \stdClass();
$role->name = $this->random->name(8);
user_role_save($role);
user_role_grant_permissions($role->rid, $permissions);
if ($role && !empty($role->rid)) {
$count = db_query('SELECT COUNT(*) FROM {role_permission} WHERE rid = :rid', array(':rid' => $role->rid))->fetchField();
if ($count == count($permissions)) {
return $role->rid;
} else {
return FALSE;
}
} else {
return FALSE;
}
}
示例7: role_create
public function role_create($role_machine_name, $role_human_readable_name = '') {
return user_role_save((object)array('name' => $role_machine_name));
}
示例8: saveToActiveStore
/**
* Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
*/
public function saveToActiveStore(ConfigIteratorSettings &$settings)
{
$role = $this->getData();
if (!empty($role->machine_name) && ($existing = db_query("SELECT rid FROM {role} WHERE machine_name = :machine_name", array(':machine_name' => $role->machine_name))->fetchField())) {
$role->rid = $existing;
}
user_role_save($role);
$settings->addInfo('imported', $this->getUniqueId());
}
示例9: role_create
public function role_create($role_machine_name, $role_human_readable_name = '')
{
// In D6 and D7, when we create a new role, the role
// machine name is specified, and the numeric rid is
// auto-assigned (next available id); in D8, when we
// create a new role, we need to specify both the rid,
// which is now the role machine name, and also a human-readable
// role name. If the client did not provide a human-readable
// name, then we'll use the role machine name in its place.
if (empty($role_human_readable_name)) {
$role_human_readable_name = ucfirst($role_machine_name);
}
return user_role_save((object) array('name' => $role_human_readable_name, 'rid' => $role_machine_name));
}
示例10: roleCreate
/**
* {@inheritdoc}
*/
public function roleCreate(array $permissions)
{
// Both machine name and permission title are allowed.
$all_permissions = $this->getAllPermissions();
foreach ($permissions as $key => $name) {
if (!isset($all_permissions[$name])) {
$search = array_search($name, $all_permissions);
if (!$search) {
throw new \RuntimeException(sprintf("No permission '%s' exists.", $name));
}
$permissions[$key] = $search;
}
}
// Create new role.
$role = new \stdClass();
$role->name = $this->random->name(8);
user_role_save($role);
user_role_grant_permissions($role->rid, $permissions);
if ($role && !empty($role->rid)) {
return $role->name;
}
throw new \RuntimeException(sprintf('Failed to create a role with "" permission(s).', implode(', ', $permissions)));
}