123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Filters\AdminRoleFilter;
- use App\Http\Requests\AdminRoleRequest;
- use App\Http\Resources\AdminRoleResource;
- use App\Models\AdminRole;
- use App\Utils\Admin;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Log;
- class AdminRoleController extends Controller
- {
- public function store(AdminRoleRequest $request, AdminRole $model)
- {
- $id = Admin::user()->id;
- $inputs = $request->validated();
- $inputs['admin_id'] = $id;
- $role = $model->create($inputs);
- if (!empty($perms = $inputs['permissions'] ?? [])) {
- $role->permissions()->attach($perms);
- }
- // 添加菜单权限
- if (!empty($vue_routers = $inputs['menu'] ?? [])) {
- $vue_routers = setlist(object_array($vue_routers));
- $role->vue_routers()->attach(array_column($vue_routers,'id'));
- }
- return $this->created(AdminRoleResource::make($role));
- }
- public function edit(AdminRole $adminRole)
- {
- $adminRole->load(['permissions','vue_routers']);
- return $this->ok(AdminRoleResource::make($adminRole));
- }
- public function update(AdminRoleRequest $request, AdminRole $adminRole)
- {
- $inputs = $request->validated();
- //Log::info(json_encode($inputs));
- $adminRole->update($inputs);
- if (isset($inputs['permissions'])) {
- $adminRole->permissions()->sync($inputs['permissions']);
- }
- //更新菜单权限
- if (!empty($inputs['menu'])) {
- $vue_routeres = setlist(object_array($inputs['menu']));
- // Log::info($vue_routeres);
- // $vue_routeres = $inputs['vue_routers'];
- $adminRole->vue_routers()->sync(array_column($vue_routeres,'id'));
- }
- return $this->created(AdminRoleResource::make($adminRole));
- }
- public function destroy(AdminRole $adminRole)
- {
- $adminRole->delete();
- return $this->noContent();
- }
- public function index(Request $request, AdminRoleFilter $filter)
- {
- $id = Admin::user()->id;
- if (Admin::isAdministrator()) {
- $roles = AdminRole::query()
- ->with(['permissions'])
- ->filter($filter)
- // ->where('id','>',1)
- ->orderByDesc('id');
- $roles = $request->get('all') ? $roles->get() : $roles->paginate();
- } elseif (Admin::isNormalAdministrator()) {
- $roles = AdminRole::query()
- ->with(['permissions'])
- ->filter($filter)
- // ->where('id','>',1)
- ->where('id', '>', 1)
- ->orderByDesc('id');
- $roles = $request->get('all') ? $roles->get() : $roles->paginate();
- } else {
- $roles = AdminRole::query()
- ->with(['permissions'])
- ->filter($filter)
- ->where('id', '>', 2)
- ->where('admin_id', $id)
- ->orderByDesc('id');
- $roles = $request->get('all') ? $roles->get() : $roles->paginate();
- }
- return $this->ok(AdminRoleResource::collection($roles));
- }
- }
|