From 9007cc8a41b658c00ccb69f4d9d42a5eb14cf864 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Mon, 1 Aug 2022 21:04:09 +0800 Subject: [PATCH] fixed roles --- .../Http/Controllers/AdminRoleController.php | 6 +- beike/Admin/Repositories/PermissionRepo.php | 73 +++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 beike/Admin/Repositories/PermissionRepo.php diff --git a/beike/Admin/Http/Controllers/AdminRoleController.php b/beike/Admin/Http/Controllers/AdminRoleController.php index 948e0ad3..4011598a 100644 --- a/beike/Admin/Http/Controllers/AdminRoleController.php +++ b/beike/Admin/Http/Controllers/AdminRoleController.php @@ -11,15 +11,20 @@ namespace Beike\Admin\Http\Controllers; +use Beike\Models\AdminUser; use Illuminate\Http\Request; use Spatie\Permission\Models\Role; +use Illuminate\Support\Facades\Auth; +use Beike\Admin\Repositories\PermissionRepo; class AdminRoleController extends Controller { public function index() { + $adminUser = Auth::guard(AdminUser::AUTH_GUARD)->user(); $data = [ 'roles' => Role::query()->get(), + 'permissions' => (new PermissionRepo($adminUser))->getAllPermissions(), ]; return view('admin::pages.admin_roles.index', $data); @@ -28,7 +33,6 @@ class AdminRoleController extends Controller public function edit(Request $request) { $data = []; - return view('admin::pages.admin_roles.edit', $data); } diff --git a/beike/Admin/Repositories/PermissionRepo.php b/beike/Admin/Repositories/PermissionRepo.php new file mode 100644 index 00000000..87a431e6 --- /dev/null +++ b/beike/Admin/Repositories/PermissionRepo.php @@ -0,0 +1,73 @@ + + * @created 2022-08-01 20:49:45 + * @modified 2022-08-01 20:49:45 + */ + +namespace Beike\Admin\Repositories; + +use Beike\Models\AdminUser; + +class PermissionRepo +{ + private $adminUser; + + public function __construct(AdminUser $adminUser) + { + $this->adminUser = $adminUser; + } + + /** + * 所有权限列表 + * + * @return \string[][][] + */ + public function getAllPermissions(): array + { + $permissions = [ + 'product' => self::getProductPermissions(), + 'order' => self::getOrderPermissions(), + ]; + + return $permissions; + } + + + /** + * 商品权限列表 + * + * @return \string[][] + */ + 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')], + ]; + } + + + /** + * 订单权限列表 + * + * @return \string[][] + */ + 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')], + ]; + } +}