first upload all files
This commit is contained in:
96
Modules/User/Repositories/Permission.php
Normal file
96
Modules/User/Repositories/Permission.php
Normal file
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Repositories;
|
||||
|
||||
use Nwidart\Modules\Facades\Module;
|
||||
|
||||
class Permission
|
||||
{
|
||||
/**
|
||||
* Get the permissions from all the enabled modules.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function all()
|
||||
{
|
||||
return static::getEnabledModulePermissions() + static::getActiveThemePermissions();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get enabled module permissions.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private static function getEnabledModulePermissions()
|
||||
{
|
||||
$permissions = [];
|
||||
|
||||
foreach (Module::allEnabled() as $module) {
|
||||
$config = config('fleetcart.modules.' . strtolower($module->getName()) . '.permissions');
|
||||
|
||||
if (! is_null($config)) {
|
||||
$permissions[$module->getName()] = $config;
|
||||
}
|
||||
}
|
||||
|
||||
return $permissions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get active theme permissions.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private static function getActiveThemePermissions()
|
||||
{
|
||||
$permissions = config('fleetcart.themes.' . strtolower(setting('active_theme')) . '.permissions');
|
||||
|
||||
if (is_null($permissions)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return [setting('active_theme') => $permissions];
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare given permissions.
|
||||
*
|
||||
* @param array $permissions
|
||||
* @return string
|
||||
*/
|
||||
public static function prepare(array $permissions)
|
||||
{
|
||||
$preparedPermissions = [];
|
||||
|
||||
foreach ($permissions as $name => $value) {
|
||||
if (is_null($value) || is_bool($value)) {
|
||||
$preparedPermissions[$name] = $value;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! is_null(static::value($value))) {
|
||||
$preparedPermissions[$name] = static::value($value);
|
||||
}
|
||||
}
|
||||
|
||||
return json_encode($preparedPermissions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the permission value.
|
||||
*
|
||||
* @param $permission
|
||||
* @return bool|null
|
||||
*/
|
||||
protected static function value($permission)
|
||||
{
|
||||
if ($permission === '1') {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($permission === '-1') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user