AdminPermissionController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Filters\AdminPermissionFilter;
  4. use App\Http\Requests\AdminPermissionRequest;
  5. use App\Http\Resources\AdminPermissionResource;
  6. use App\Models\AdminPermission;
  7. use App\Models\AdminUser;
  8. use App\Traits\ResourceRolePermissionHelpers;
  9. use App\Utils\Admin;
  10. use Illuminate\Database\Eloquent\Builder;
  11. use Illuminate\Http\Request;
  12. use App\Http\Controllers\Controller;
  13. class AdminPermissionController extends Controller
  14. {
  15. use ResourceRolePermissionHelpers;
  16. public function store(AdminPermissionRequest $request, AdminPermission $model)
  17. {
  18. $inputs = $request->validated();
  19. $res = $model->create($inputs);
  20. return $this->created(AdminPermissionResource::make($res));
  21. }
  22. public function index(Request $request, AdminPermissionFilter $filter)
  23. {
  24. $id = Admin::user()->id;
  25. if (Admin::isAdministrator()) {
  26. $perms = AdminPermission::query()
  27. ->filter($filter)
  28. // ->where('id','>',1)
  29. ->orderByDesc('id');
  30. $perms = $request->get('all') ? $perms->get() : $perms->paginate();
  31. } else {
  32. $permsIds = AdminUser::query()->find(Admin::user()->id)->getPersIds();
  33. $perms = AdminPermission::query()
  34. ->filter($filter)
  35. ->whereIn('id',$permsIds)
  36. ->orderByDesc('id');
  37. $perms = $request->get('all') ? $perms->get() : $perms->paginate();
  38. }
  39. return $this->ok(AdminPermissionResource::collection($perms));
  40. }
  41. public function edit(AdminPermission $adminPermission)
  42. {
  43. return $this->ok(AdminPermissionResource::make($adminPermission));
  44. }
  45. public function update(AdminPermissionRequest $request, AdminPermission $adminPermission)
  46. {
  47. $inputs = $request->validated();
  48. $adminPermission->update($inputs);
  49. return $this->created(AdminPermissionResource::make($adminPermission));
  50. }
  51. public function destroy(AdminPermission $adminPermission)
  52. {
  53. $adminPermission->delete();
  54. return $this->noContent();
  55. }
  56. }