63 lines
1.9 KiB
PHP
63 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Drush\Role;
|
|
|
|
use Drupal\user\Entity\Role;
|
|
|
|
class Role8 extends Role7 {
|
|
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);
|
|
}
|
|
$role = new Role(array(
|
|
'id' => $role_machine_name,
|
|
'label' => $role_human_readable_name,
|
|
), 'user_role');
|
|
$role->save();
|
|
return $role;
|
|
}
|
|
|
|
public function getPerms() {
|
|
$role = entity_load('user_role', $this->rid);
|
|
$perms = $role->getPermissions();
|
|
// $perms = user_role_permissions(array($this->rid => $this->name));
|
|
return $perms;
|
|
}
|
|
|
|
public function getAllModulePerms() {
|
|
$perms = \Drupal::service('user.permissions')->getPermissions();
|
|
return array_keys($perms);
|
|
}
|
|
|
|
public function getModulePerms($module) {
|
|
$module_perms = array();
|
|
$perms = \Drupal::service('user.permissions')->getPermissions();
|
|
foreach ($perms as $name => $perm) {
|
|
if ($perm['provider'] == $module) {
|
|
$module_perms[] = $name;
|
|
}
|
|
}
|
|
return $module_perms;
|
|
}
|
|
|
|
public function delete() {
|
|
$role = entity_load('user_role', $this->rid);
|
|
$role->delete();
|
|
}
|
|
|
|
public function grant_permissions($perms) {
|
|
return drush_op('user_role_grant_permissions', $this->rid, $perms);
|
|
}
|
|
|
|
public function revoke_permissions($perms) {
|
|
return drush_op('user_role_revoke_permissions', $this->rid, $perms);
|
|
}
|
|
}
|