PermissionManager.php 1.19 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13
<?php namespace Modules\Core\Permissions;

use Illuminate\Support\Facades\Config;

class PermissionManager
{
    /**
     * @var Module
     */
    private $module;

    /**
     */
14
    public function __construct()
15
    {
16
        $this->module = app('modules');
17 18 19 20 21 22 23 24 25 26
    }

    /**
     * Get the permissions from all the enabled modules
     * @return array
     */
    public function all()
    {
        $permissions = [];
        foreach ($this->module->enabled() as $enabledModule) {
27
            $configuration = Config::get(strtolower($enabledModule->getName()) . '::permissions');
28
            if ($configuration) {
29
                $permissions[$enabledModule->getName()] = $configuration;
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
            }
        }
        return $permissions;
    }

    /**
     * Return a correctly type casted permissions array
     * @param $permissions
     * @return array
     */
    public function clean($permissions)
    {
        if (!$permissions) {
            return [];
        }
        $cleanedPermissions = [];
        foreach ($permissions as $permissionName => $checkedPermission) {
            $cleanedPermissions[$permissionName] = (bool)$checkedPermission;
        }
        return $cleanedPermissions;
    }
51
}