DONE: layout letter with letterhead and footer, notification for newly...
This commit is contained in:
@@ -13,6 +13,7 @@ use Modules\Role\Http\Requests\RoleRequest;
|
||||
use Modules\Role\Repositories\Contracts\RoleRepositoryInterface;
|
||||
use Modules\Role\Transformers\RoleResource;
|
||||
use App\Models\Permission;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class RoleController extends BaseCrudController
|
||||
@@ -104,6 +105,10 @@ class RoleController extends BaseCrudController
|
||||
*/
|
||||
public function permissions(): JsonResponse
|
||||
{
|
||||
if (! Gate::any(['create', 'update'], $this->modelClass)) {
|
||||
abort(403);
|
||||
}
|
||||
|
||||
$permissions = Permission::all();
|
||||
|
||||
return response()->json([
|
||||
@@ -124,6 +129,8 @@ class RoleController extends BaseCrudController
|
||||
*/
|
||||
public function assignPermissions(Request $request, string $id): JsonResponse
|
||||
{
|
||||
$this->authorize('update', $this->modelClass);
|
||||
|
||||
$request->validate([
|
||||
'permissions' => 'required|array',
|
||||
'permissions.*' => ['required', 'uuid', Rule::exists('permissions', 'id')],
|
||||
@@ -143,7 +150,9 @@ class RoleController extends BaseCrudController
|
||||
* Get role with permissions
|
||||
*/
|
||||
public function show(string $id): JsonResponse
|
||||
{
|
||||
{
|
||||
$this->authorize('view', $this->modelClass);
|
||||
|
||||
$role = $this->repository->find($id);
|
||||
|
||||
return response()->json([
|
||||
@@ -157,6 +166,8 @@ class RoleController extends BaseCrudController
|
||||
*/
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$this->authorize('viewAny', $this->modelClass);
|
||||
|
||||
$search = $request->get('search', '');
|
||||
$roles = $this->repository->withPermissions($search);
|
||||
|
||||
@@ -165,17 +176,4 @@ class RoleController extends BaseCrudController
|
||||
'data' => RoleResource::collection($roles),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Public endpoint for registration form (no auth required)
|
||||
*/
|
||||
public function publicRole(): JsonResponse
|
||||
{
|
||||
$roles = $this->repository->all();
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'data' => RoleResource::collection($roles),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ class RolePolicy
|
||||
*/
|
||||
public function viewAny($user): bool
|
||||
{
|
||||
return $user->hasPermissionTo('lihat jenis pengguna');
|
||||
return $user->hasPermissionTo('lihat peranan');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -22,7 +22,7 @@ class RolePolicy
|
||||
*/
|
||||
public function view($user, ?Role $role = null): bool
|
||||
{
|
||||
return $user->hasPermissionTo('lihat jenis pengguna');
|
||||
return $user->hasPermissionTo('lihat peranan');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -30,7 +30,7 @@ class RolePolicy
|
||||
*/
|
||||
public function create($user): bool
|
||||
{
|
||||
return $user->hasPermissionTo('tambah jenis pengguna');
|
||||
return $user->hasPermissionTo('tambah peranan');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -38,7 +38,7 @@ class RolePolicy
|
||||
*/
|
||||
public function update($user, ?Role $role = null): bool
|
||||
{
|
||||
return $user->hasPermissionTo('kemaskini jenis pengguna');
|
||||
return $user->hasPermissionTo('kemaskini peranan');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -46,7 +46,7 @@ class RolePolicy
|
||||
*/
|
||||
public function deleteAny($user): bool
|
||||
{
|
||||
return $user->hasPermissionTo('hapus jenis pengguna');
|
||||
return $user->hasPermissionTo('hapus peranan');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -54,6 +54,6 @@ class RolePolicy
|
||||
*/
|
||||
public function delete($user, ?Role $role = null): bool
|
||||
{
|
||||
return $user->hasPermissionTo('hapus jenis pengguna');
|
||||
return $user->hasPermissionTo('hapus peranan');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,11 +3,6 @@
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Modules\Role\Http\Controllers\RoleController;
|
||||
|
||||
// Public route for registration form (no auth required)
|
||||
Route::prefix('v1')->group(function () {
|
||||
Route::get('public/roles', [RoleController::class, 'publicRole']);
|
||||
});
|
||||
|
||||
// Protected routes (auth required)
|
||||
Route::middleware(['auth:sanctum'])->prefix('v1')->group(function () {
|
||||
Route::apiResource('roles', RoleController::class)->names('role');
|
||||
|
||||
Reference in New Issue
Block a user