protected function UserCreationTrait::createRole in Zircon Profile 8.0
Same name and namespace in other branches
- 8 core/modules/simpletest/src/UserCreationTrait.php \Drupal\simpletest\UserCreationTrait::createRole()
Creates a role with specified permissions.
Parameters
array $permissions: Array of permission names to assign to role.
string $rid: (optional) The role ID (machine name). Defaults to a random name.
string $name: (optional) The label for the role. Defaults to a random string.
integer $weight: (optional) The weight for the role. Defaults NULL so that entity_create() sets the weight to maximum + 1.
Return value
string Role ID of newly created role, or FALSE if role creation failed.
11 calls to UserCreationTrait::createRole()
- AccessTest::setUp in core/
modules/ views/ src/ Tests/ Plugin/ AccessTest.php - Sets up a Drupal site for running functional and integration tests.
- AccessTestBase::setUp in core/
modules/ user/ src/ Tests/ Views/ AccessTestBase.php - Sets up a Drupal site for running functional and integration tests.
- ConfigTranslationListUiTest::doUserRoleListTest in core/
modules/ config_translation/ src/ Tests/ ConfigTranslationListUiTest.php - Tests the role listing for the translate operation.
- HandlerFieldRoleTest::testRole in core/
modules/ user/ src/ Tests/ Views/ HandlerFieldRoleTest.php - ToolbarAdminMenuTest::testNonCurrentUserAccountUpdates in core/
modules/ toolbar/ src/ Tests/ ToolbarAdminMenuTest.php - Tests that changes to a user account by another user clears the changed account's toolbar cached, not the user's who took the action.
File
- core/
modules/ simpletest/ src/ UserCreationTrait.php, line 129 - Contains \Drupal\simpletest\UserCreationTrait.
Class
- UserCreationTrait
- Provides methods to create additional test users and switch the currently logged in one.
Namespace
Drupal\simpletestCode
protected function createRole(array $permissions, $rid = NULL, $name = NULL, $weight = NULL) {
// Generate a random, lowercase machine name if none was passed.
if (!isset($rid)) {
$rid = strtolower($this
->randomMachineName(8));
}
// Generate a random label.
if (!isset($name)) {
// In the role UI role names are trimmed and random string can start or
// end with a space.
$name = trim($this
->randomString(8));
}
// Check the all the permissions strings are valid.
if (!$this
->checkPermissions($permissions)) {
return FALSE;
}
// Create new role.
$role = Role::create(array(
'id' => $rid,
'label' => $name,
));
if (isset($weight)) {
$role
->set('weight', $weight);
}
$result = $role
->save();
$this
->assertIdentical($result, SAVED_NEW, SafeMarkup::format('Created role ID @rid with name @name.', array(
'@name' => var_export($role
->label(), TRUE),
'@rid' => var_export($role
->id(), TRUE),
)), 'Role');
if ($result === SAVED_NEW) {
// Grant the specified permissions to the role, if any.
if (!empty($permissions)) {
$this
->grantPermissions($role, $permissions);
$assigned_permissions = Role::load($role
->id())
->getPermissions();
$missing_permissions = array_diff($permissions, $assigned_permissions);
if (!$missing_permissions) {
$this
->pass(SafeMarkup::format('Created permissions: @perms', array(
'@perms' => implode(', ', $permissions),
)), 'Role');
}
else {
$this
->fail(SafeMarkup::format('Failed to create permissions: @perms', array(
'@perms' => implode(', ', $missing_permissions),
)), 'Role');
}
}
return $role
->id();
}
else {
return FALSE;
}
}