Current File : /home/itiffy/public_html/vendor/laraveldaily/quickadmin/src/Traits/AdminPermissionsTrait.php |
<?php
namespace Laraveldaily\Quickadmin\Traits;
use Laraveldaily\Quickadmin\Models\Menu;
trait AdminPermissionsTrait
{
public function permissionCan($request)
{
if (is_null($request->route()->getName())) {
return true;
}
list($role, $menu) = $this->parseData($request);
if (is_int($menu)) {
return $role == $menu;
}
return $menu->availableForRole($role);
}
/**
* @param $request
*
* @return array
*/
private function parseData($request)
{
$role = $request->user()->role_id;
$route = explode('.', $request->route()->getName());
$official = [
'menu',
'users',
'roles',
'actions'
];
if (in_array($route[0], $official)) {
return [$role, config('quickadmin.defaultRole')];
} else {
$menuName = $route[1];
}
$menu = Menu::where('name', ucfirst($menuName))->firstOrFail();
return [$role, $menu];
}
}