permissions = $permissions; foreach ($permissions as $role => $perms) { $this->knownPermissions = array_merge($this->knownPermissions, $perms); } $this->knownPermissions = array_unique($this->knownPermissions); } /** * @param string $permission * @return bool */ public function isRegisteredPermission($permission) { return in_array($permission, $this->knownPermissions); } /** * @param string $role * @return bool */ public function roleHasPermission($role) { return isset($this->permissions[$role]); } /** * @param string $role * @param string $permission * @return bool */ public function hasPermission($role, $permission) { if (!isset($this->permissions[$role])) { return false; } return in_array($permission, $this->permissions[$role]); } }