You are here

public static function PermissionMatrix::createFromFile in Little helpers 7

File

src/c2c/PermissionMatrix.php, line 30

Class

PermissionMatrix

Namespace

Drupal\little_helpers\c2c

Code

public static function createFromFile($file) {
  $roles = array();
  $matrix = array();

  // This redefines $roles and $matrix.
  include $file;
  $sys_roles = array();
  $roles_perms = array();
  foreach (user_roles() as $rid => $role) {
    $sys_roles[$role] = $rid;
    $roles_perms[$rid] = array();
  }
  $index_to_rid = array();
  foreach ($roles as $role) {
    $index_to_rid[] = isset($sys_roles[$role]) ? $sys_roles[$role] : FALSE;
  }
  foreach ($matrix as $module => $perms) {
    foreach ($perms as $perm => $vals) {
      foreach ($vals as $col => $val) {
        if (isset($val) && $index_to_rid[$col]) {
          $roles_perms[$index_to_rid[$col]][$module][$perm] = $val;
        }
      }
    }
  }
  return self::create(user_roles(), $roles_perms);
}