fixed roles
This commit is contained in:
parent
c06e0c5725
commit
c4ca33ec32
|
|
@ -30,9 +30,9 @@ class AdminRoleController extends Controller
|
|||
|
||||
public function create(Request $request)
|
||||
{
|
||||
$adminUser = Auth::guard(AdminUser::AUTH_GUARD)->user();
|
||||
$permissionRepo = (new PermissionRepo());
|
||||
$data = [
|
||||
'permissions' => (new PermissionRepo($adminUser))->getAllPermissions(),
|
||||
'permissions' => $permissionRepo->getAllPermissions(),
|
||||
];
|
||||
return view('admin::pages.admin_roles.edit', $data);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,14 +12,23 @@
|
|||
namespace Beike\Admin\Repositories;
|
||||
|
||||
use Beike\Models\AdminUser;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
class PermissionRepo
|
||||
{
|
||||
private $adminUser;
|
||||
private $adminRole;
|
||||
|
||||
public function __construct(AdminUser $adminUser)
|
||||
public function setUser(AdminUser $user): PermissionRepo
|
||||
{
|
||||
$this->adminUser = $adminUser;
|
||||
$this->adminUser = $user;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setRole(Role $role): PermissionRepo
|
||||
{
|
||||
$this->adminRole = $role;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -52,11 +61,11 @@ class PermissionRepo
|
|||
private function getProductPermissions(): array
|
||||
{
|
||||
return [
|
||||
['code' => 'product_list', 'name' => '商品列表', 'selected' => $this->adminUser->hasAnyPermission('product_list')],
|
||||
['code' => 'product_create', 'name' => '商品创建', 'selected' => $this->adminUser->hasAnyPermission('product_create')],
|
||||
['code' => 'product_show', 'name' => '商品详情', 'selected' => $this->adminUser->hasAnyPermission('product_show')],
|
||||
['code' => 'product_update', 'name' => '商品编辑', 'selected' => $this->adminUser->hasAnyPermission('product_update')],
|
||||
['code' => 'product_delete', 'name' => '商品删除', 'selected' => $this->adminUser->hasAnyPermission('product_delete')],
|
||||
['code' => 'product_list', 'name' => '商品列表', 'selected' => $this->hasPermission('product_list')],
|
||||
['code' => 'product_create', 'name' => '商品创建', 'selected' => $this->hasPermission('product_create')],
|
||||
['code' => 'product_show', 'name' => '商品详情', 'selected' => $this->hasPermission('product_show')],
|
||||
['code' => 'product_update', 'name' => '商品编辑', 'selected' => $this->hasPermission('product_update')],
|
||||
['code' => 'product_delete', 'name' => '商品删除', 'selected' => $this->hasPermission('product_delete')],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -69,11 +78,28 @@ class PermissionRepo
|
|||
private function getOrderPermissions(): array
|
||||
{
|
||||
return [
|
||||
['code' => 'order_list', 'name' => '订单列表', 'selected' => $this->adminUser->hasAnyPermission('order_list')],
|
||||
['code' => 'order_create', 'name' => '订单创建', 'selected' => $this->adminUser->hasAnyPermission('order_create')],
|
||||
['code' => 'order_show', 'name' => '订单详情', 'selected' => $this->adminUser->hasAnyPermission('order_show')],
|
||||
['code' => 'order_update', 'name' => '订单编辑', 'selected' => $this->adminUser->hasAnyPermission('order_update')],
|
||||
['code' => 'order_delete', 'name' => '订单删除', 'selected' => $this->adminUser->hasAnyPermission('order_delete')],
|
||||
['code' => 'order_list', 'name' => '订单列表', 'selected' => $this->hasPermission('order_list')],
|
||||
['code' => 'order_create', 'name' => '订单创建', 'selected' => $this->hasPermission('order_create')],
|
||||
['code' => 'order_show', 'name' => '订单详情', 'selected' => $this->hasPermission('order_show')],
|
||||
['code' => 'order_update', 'name' => '订单编辑', 'selected' => $this->hasPermission('order_update')],
|
||||
['code' => 'order_delete', 'name' => '订单删除', 'selected' => $this->hasPermission('order_delete')],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 判断当前用户或者角色是否有权限
|
||||
*
|
||||
* @param $permission
|
||||
* @return bool
|
||||
*/
|
||||
private function hasPermission($permission): bool
|
||||
{
|
||||
if ($this->adminRole) {
|
||||
return $this->adminRole->hasPermissionTo($permission);
|
||||
} elseif ($this->adminUser) {
|
||||
return $this->adminUser->hasPermissionTo($permission);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue