Kaynağa Gözat

将社区端的权限管理搬迁至总后台

ChenWuJie 4 yıl önce
ebeveyn
işleme
c7b5b7b052

+ 92 - 0
app/Admin/Controllers/PermissionController.php

xqd
@@ -0,0 +1,92 @@
+<?php
+
+namespace App\Admin\Controllers;
+
+use App\Models\CdmsPermissions;
+use App\Models\CdmsRoles;
+use Encore\Admin\Controllers\AdminController;
+use Encore\Admin\Facades\Admin;
+use Encore\Admin\Form;
+use Encore\Admin\Grid;
+use Encore\Admin\Show;
+
+class PermissionController extends AdminController
+{
+    /**
+     * Title for current resource.
+     *
+     * @var string
+     */
+    protected $title = '权限列表';
+
+    /**
+     * Make a grid builder.
+     *
+     * @return Grid
+     */
+    protected function grid()
+    {
+        $grid = new Grid(new CdmsRoles());
+
+        $user = Admin::user();
+        $is_admin = Admin::user()->inRoles(['administrator','devloper']);
+        $grid->disableCreateButton(false);
+//        $is_manager = Admin::user()->isRole('manager');
+        if(!$is_admin){
+            $org_id = $user->org_id;
+            $grid->model()->where(['org_id'=>$org_id]);
+        }
+        $grid->column('organization.name', __('所属机构'))->display(function ($org_name){
+            return $org_name ?? '总后台';
+        });
+        $grid->column('name', __('名称'));
+        $grid->column('slug', __('标识'));
+        $grid->column('created_at', __('创建时间'));
+        $grid->column('updated_at', __('更新时间'));
+
+        return $grid;
+    }
+
+    /**
+     * Make a show builder.
+     *
+     * @param mixed $id
+     * @return Show
+     */
+    protected function detail($id)
+    {
+        $show = new Show(CdmsRoles::findOrFail($id));
+
+        $show->field('id', __('Id'));
+        $show->field('name', __('Name'));
+        $show->field('slug', __('Slug'));
+        $show->field('created_at', __('Created at'));
+        $show->field('updated_at', __('Updated at'));
+
+        return $show;
+    }
+
+    /**
+     * Make a form builder.
+     *
+     * @return Form
+     */
+    protected function form()
+    {
+        $form = new Form(new CdmsRoles());
+        $is_manager = Admin::user()->isRole('manager');
+
+        if($is_manager){
+            $org_id = Admin::user()->org_id;
+            $form->hidden('org_id')->value($org_id);
+        }
+
+        $form->text('slug', __('标识'))->rules('required',['required'=>'标识必须']);
+        $form->text('name', '名称')
+            ->creationRules(['required', "unique:cdms_roles"])
+            ->updateRules(['required', "unique:cdms_roles,name,{{id}}"]);
+        $form->listbox('permissions', trans('admin.permissions'))->options(CdmsPermissions::all()->pluck('name', 'id'));
+
+        return $form;
+    }
+}

+ 5 - 0
app/Admin/routes.php

xqd
@@ -141,5 +141,10 @@ Route::group([
 
     //服务审核
     $router->resource('service_applys', ServiceManagement\ServiceController::class);
+
+    /*
+     * 权限管理
+     * */
+    $router->resource('cdms_roles', PermissionController::class);
 });