DONE: layout letter with letterhead and footer, notification for newly...

This commit is contained in:
ISMAIL MASSERAN
2026-06-28 02:16:49 +00:00
parent 94ecbe5887
commit 034ecf947f
400 changed files with 29802 additions and 5446 deletions
@@ -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),
]);
}
}