for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php namespace Modules\Core\Permissions;
class PermissionManager
{
/**
* @var Module
*/
private $module;
public function __construct()
$this->module = app('modules');
}
* Get the permissions from all the enabled modules
* @return array
public function all()
$permissions = [];
foreach ($this->module->enabled() as $enabledModule) {
$configuration = config(strtolower('asgard.' . $enabledModule->getName()) . '.permissions');
if ($configuration) {
$permissions[$enabledModule->getName()] = $configuration;
return $permissions;
* Return a correctly type casted permissions array
* @param $permissions
public function clean($permissions)
if (!$permissions) {
return [];
$cleanedPermissions = [];
foreach ($permissions as $permissionName => $checkedPermission) {
$cleanedPermissions[$permissionName] = $this->getState($checkedPermission);
return $cleanedPermissions;
* @param $checkedPermission
* @return bool
protected function getState($checkedPermission)
if ($checkedPermission == 'true') {
return true;
if ($checkedPermission == 'false') {
return false;
return (bool)$checkedPermission;
* Are all of the permissions passed of false value?
* @param array $permissions Permissions array
public function permissionsAreAllFalse(array $permissions)
$uniquePermissions = array_unique($permissions);
if (count($uniquePermissions) > 1) {
$uniquePermission = reset($uniquePermissions);
$cleanedPermission = $this->getState($uniquePermission);
return $cleanedPermission === false;