diff --git a/app/Http/Controllers/API/Settings/RoleController.php b/app/Http/Controllers/API/Settings/RoleController.php index ffa134ce..852bf232 100644 --- a/app/Http/Controllers/API/Settings/RoleController.php +++ b/app/Http/Controllers/API/Settings/RoleController.php @@ -600,6 +600,59 @@ public function deleteVariables(Request $request) return response()->json('Fonksiyonlar başarıyla silindi.'); } + /** + * Role based system layout view settings + */ + public function views(Request $request) + { + $permissions = Permission::where([ + 'morph_id' => $request->role_id, + 'type' => 'view', + ])->get(); + + return response()->json($permissions); + } + + /** + * Set role views + * + * @param Request $request + * @return JsonResponse + */ + public function setViews(Request $request) + { + Permission::where([ + 'morph_id' => $request->role_id, + 'type' => 'view', + ])->delete(); + + foreach ($request->views as $view) { + Permission::grant( + $request->role_id, + 'view', + 'name', + $view, + null, + 'roles' + ); + } + + AuditLog::write( + 'role', + 'edit', + [ + 'changed_count' => count($request->views ?? []), + 'type' => 'views', + 'array' => $request->views + ], + "ROLE_EDIT" + ); + + return response()->json([ + 'message' => 'Görünüm ayarları güncellendi.' + ]); + } + /** * Retrieve all roles *