Version 1
[yaffs-website] / vendor / drush / drush / lib / Drush / Role / Role8.php
diff --git a/vendor/drush/drush/lib/Drush/Role/Role8.php b/vendor/drush/drush/lib/Drush/Role/Role8.php
new file mode 100644 (file)
index 0000000..ce0b28e
--- /dev/null
@@ -0,0 +1,62 @@
+<?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);
+  }
+}