D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
forge
/
lactobokashi.com
/
app
/
Http
/
Controllers
/
Admin
/
Filename :
PermissionController.php
back
Copy
<?php namespace App\Http\Controllers\Admin; use App\Http\Requests\PermissionRequest; use App\Http\Resources\RoleResource; use App\Libraries\AppLibrary; use App\Services\PermissionService; use Exception; use Illuminate\Http\JsonResponse; use Spatie\Permission\Models\Permission; use Spatie\Permission\Models\Role; class PermissionController extends AdminController { private PermissionService $permissionService; public function __construct(PermissionService $permissionService) { parent::__construct(); $this->permissionService = $permissionService; $this->middleware(['permission:settings'])->only('update'); } public function index(Role $role): \Illuminate\Foundation\Application|\Illuminate\Http\Response|JsonResponse|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory { try { $permissions = Permission::get(); $rolePermissions = Permission::join( "role_has_permissions", "role_has_permissions.permission_id", "=", "permissions.id" )->where("role_has_permissions.role_id", $role->id)->get()->pluck('name', 'id'); $permissions = AppLibrary::permissionWithAccess($permissions, $rolePermissions); $permissions = AppLibrary::numericToAssociativeArrayBuilder($permissions->toArray()); return new JsonResponse(['data' => $permissions], 201); } catch (Exception $exception) { return response(['status' => false, 'message' => $exception->getMessage()], 422); } } public function update(PermissionRequest $request, Role $role): RoleResource|\Illuminate\Foundation\Application|\Illuminate\Http\Response|\Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory { try { return new RoleResource($this->permissionService->update($request, $role)); } catch (Exception $exception) { return response(['status' => false, 'message' => $exception->getMessage()], 422); } } }