From ee83c776ec7104f4e729f85fde87d949ec5a7729 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 7 May 2025 10:09:18 +0330 Subject: [PATCH 1/8] add all permissions api --- .../Admin/PermissionManagementController.php | 46 ++++++++++--------- app/Http/Controllers/ProfileController.php | 5 ++ .../PermissionManagement/StoreRequest.php | 29 ++++++++++++ .../PermissionManagement/UpdateRequest.php | 36 +++++++++++++++ routes/web.php | 26 +++++++++-- 5 files changed, 115 insertions(+), 27 deletions(-) create mode 100644 app/Http/Requests/Admin/PermissionManagement/StoreRequest.php create mode 100644 app/Http/Requests/Admin/PermissionManagement/UpdateRequest.php diff --git a/app/Http/Controllers/Admin/PermissionManagementController.php b/app/Http/Controllers/Admin/PermissionManagementController.php index 8b0bc62..a96c3a4 100644 --- a/app/Http/Controllers/Admin/PermissionManagementController.php +++ b/app/Http/Controllers/Admin/PermissionManagementController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; +use App\Http\Requests\Admin\PermissionManagement\StoreRequest; +use App\Http\Requests\Admin\PermissionManagement\UpdateRequest; use App\Http\Resources\Admin\PermissionResource; use app\Http\Traits\ApiResponse; use App\Models\Permission; @@ -12,12 +14,10 @@ use Illuminate\Http\Request; class PermissionManagementController extends Controller { use ApiResponse; - /** - * Display a listing of the resource. - */ - public function index() + + public function index(): JsonResponse { - // + return $this->successResponse(Permission::all()); } public function list(): JsonResponse @@ -25,35 +25,37 @@ class PermissionManagementController extends Controller return $this->successResponse(PermissionResource::collection(Permission::all())); } - /** - * Store a newly created resource in storage. - */ - public function store(Request $request) + public function store(StoreRequest $request): JsonResponse { - // + Permission::query()->create([ + 'name' => $request->name, + 'name_fa' => $request->name_fa, + 'guard_name' => 'web' + ]); + return $this->successResponse(); } - /** - * Display the specified resource. - */ - public function show(string $id) + public function show(Permission $permission): JsonResponse { - // + return $this->successResponse($permission); } - /** - * Update the specified resource in storage. - */ - public function update(Request $request, string $id) + public function update(UpdateRequest $request, Permission $permission): JsonResponse { - // + $permission->update([ + 'name' => $request->name, + 'name_fa' => $request->name_fa, + 'guard_name' => 'web', + ]); + return $this->successResponse(); } /** * Remove the specified resource from storage. */ - public function destroy(string $id) + public function destroy(Permission $permission): JsonResponse { - // + $permission->delete(); + return $this->successResponse(); } } diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index a74055c..f052b03 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -46,4 +46,9 @@ class ProfileController extends Controller ]); return $this->successResponse(); } + + public function permissions(): JsonResponse + { + return $this->successResponse(auth()->user()->getAllPermissions()->pluck('name')); + } } diff --git a/app/Http/Requests/Admin/PermissionManagement/StoreRequest.php b/app/Http/Requests/Admin/PermissionManagement/StoreRequest.php new file mode 100644 index 0000000..25c9c1a --- /dev/null +++ b/app/Http/Requests/Admin/PermissionManagement/StoreRequest.php @@ -0,0 +1,29 @@ +|string> + */ + public function rules(): array + { + return [ + 'name' => 'required|unique:permissions,name|string|max:255', + 'name_fa' => 'required|unique:permissions,name|string|max:255', + ]; + } +} diff --git a/app/Http/Requests/Admin/PermissionManagement/UpdateRequest.php b/app/Http/Requests/Admin/PermissionManagement/UpdateRequest.php new file mode 100644 index 0000000..e9735eb --- /dev/null +++ b/app/Http/Requests/Admin/PermissionManagement/UpdateRequest.php @@ -0,0 +1,36 @@ +|string> + */ + public function rules(): array + { + return [ + 'name' => [ + 'required','string', 'max:255', + Rule::unique('permissions', 'name')->ignore($this->permission->id) + ], + 'name_fa' => [ + 'required','string', 'max:255', + Rule::unique('permissions', 'name_fa')->ignore($this->permission->id) + ], + ]; + } +} diff --git a/routes/web.php b/routes/web.php index 332bbfb..3c21171 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ group(function () { Route::prefix('profile') ->name('profile.') + ->middleware('auth:sanctum') ->controller(ProfileController::class) ->group(function () { - Route::get('/info', 'info')->middleware('auth:sanctum')->name('info'); - Route::post('/change_password', 'changePassword')->middleware('auth:sanctum')->name('changePassword'); + Route::get('/info', 'info')->name('info'); + Route::post('/change_password', 'changePassword')->name('changePassword'); + Route::post('/permissions', 'permissions')->name('permissions'); }); Route::prefix('users') @@ -42,13 +45,26 @@ Route::prefix('server')->group(function () { ->controller(CallController::class) ->group(function () { Route::post('/', 'store')->name('store'); - Route::get('/list', 'list')->name('list')->middleware(['auth', 'permission:manage_calls']); - Route::post('/{call}', 'update')->name('update')->middleware(['auth', 'permission:manage_calls']); + Route::get('/list', 'list')->name('list')->middleware(['auth:sanctum', 'permission:manage_calls']); + Route::post('/{call}', 'update')->name('update')->middleware(['auth:sanctum', 'permission:manage_calls']); }); - Route::middleware('auth') + Route::prefix('categories') + ->middleware('auth:sanctum') ->controller(CategoryController::class) ->group(function () { Route::get('/categories', 'list'); }); + + Route::middleware('auth:sanctum') + ->prefix('permissions') + ->controller(PermissionManagementController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('list', 'list')->name('list'); + Route::post('/', 'store')->name('store'); + Route::get('/{permission}', 'show')->name('show'); + Route::post('/{permission}', 'update')->name('update'); + Route::delete('/{permission}', 'destroy')->name('destroy'); + }); }); From bc6bf644d9e560f635aa1a7bdc59345988dd83e8 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 7 May 2025 10:35:29 +0330 Subject: [PATCH 2/8] add guarded columns to permission table --- app/Http/Requests/Admin/PermissionManagement/StoreRequest.php | 2 +- app/Models/CallHistory.php | 3 +-- app/Models/Category.php | 1 - app/Models/City.php | 2 +- app/Models/Event.php | 2 +- app/Models/Permission.php | 1 + app/Models/Province.php | 2 +- app/Models/Role.php | 1 + resources/lang/en/messages.php | 2 ++ resources/lang/fa/messages.php | 1 + routes/web.php | 4 ++-- 11 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/Http/Requests/Admin/PermissionManagement/StoreRequest.php b/app/Http/Requests/Admin/PermissionManagement/StoreRequest.php index 25c9c1a..e3dab74 100644 --- a/app/Http/Requests/Admin/PermissionManagement/StoreRequest.php +++ b/app/Http/Requests/Admin/PermissionManagement/StoreRequest.php @@ -23,7 +23,7 @@ class StoreRequest extends FormRequest { return [ 'name' => 'required|unique:permissions,name|string|max:255', - 'name_fa' => 'required|unique:permissions,name|string|max:255', + 'name_fa' => 'required|unique:permissions,name_fa|string|max:255', ]; } } diff --git a/app/Models/CallHistory.php b/app/Models/CallHistory.php index 4f5f01e..4633580 100644 --- a/app/Models/CallHistory.php +++ b/app/Models/CallHistory.php @@ -7,7 +7,6 @@ use Illuminate\Database\Eloquent\Model; class CallHistory extends Model { - /** @use HasFactory<\Database\Factories\CallHistoryFactory> */ use HasFactory; protected $guarded = ['id']; @@ -15,7 +14,7 @@ class CallHistory extends Model { $event = Event::query()->where('id', $event_id)->first(); - self::create([ + self::query()->create([ 'call_id' => $call->id, 'telephone_id' => $call->telephone_id, 'caller_phone_number' => $call->caller_phone_number, diff --git a/app/Models/Category.php b/app/Models/Category.php index b57bcab..159bad8 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -7,7 +7,6 @@ use Illuminate\Database\Eloquent\Model; class Category extends Model { - /** @use HasFactory<\Database\Factories\CategoryFactory> */ use HasFactory; protected $guarded = ['id']; } diff --git a/app/Models/City.php b/app/Models/City.php index 3f3ec29..05fc89f 100644 --- a/app/Models/City.php +++ b/app/Models/City.php @@ -7,6 +7,6 @@ use Illuminate\Database\Eloquent\Model; class City extends Model { - /** @use HasFactory<\Database\Factories\CityFactory> */ use HasFactory; + protected $guarded = []; } diff --git a/app/Models/Event.php b/app/Models/Event.php index 9dce7e8..e687502 100644 --- a/app/Models/Event.php +++ b/app/Models/Event.php @@ -7,6 +7,6 @@ use Illuminate\Database\Eloquent\Model; class Event extends Model { - /** @use HasFactory<\Database\Factories\EventFactory> */ use HasFactory; + protected $guarded = []; } diff --git a/app/Models/Permission.php b/app/Models/Permission.php index e559c90..87455f1 100644 --- a/app/Models/Permission.php +++ b/app/Models/Permission.php @@ -9,4 +9,5 @@ use Spatie\Permission\Models\Permission as SpatiePermission; class Permission extends SpatiePermission { use HasFactory; + protected $guarded = []; } diff --git a/app/Models/Province.php b/app/Models/Province.php index 115498c..9ae60b9 100644 --- a/app/Models/Province.php +++ b/app/Models/Province.php @@ -7,6 +7,6 @@ use Illuminate\Database\Eloquent\Model; class Province extends Model { - /** @use HasFactory<\Database\Factories\ProvinceFactory> */ use HasFactory; + protected $guarded = []; } diff --git a/app/Models/Role.php b/app/Models/Role.php index a129360..1371e16 100644 --- a/app/Models/Role.php +++ b/app/Models/Role.php @@ -9,4 +9,5 @@ use Spatie\Permission\Models\Role as SpatieRole; class Role extends SpatieRole { use HasFactory; + protected $guarded = []; } diff --git a/resources/lang/en/messages.php b/resources/lang/en/messages.php index c726755..d56d29b 100644 --- a/resources/lang/en/messages.php +++ b/resources/lang/en/messages.php @@ -8,4 +8,6 @@ return [ 'notification_server_is_down' => 'Notification Server Is Down', 'the_operator_is_offline' => 'The Operator Is Offline', 'operator_could_not_connect' => 'Operator Could Not Connect', + 'combination_of_category_and_subcategory_does_not_exist' => 'Combination of Category and Subcategory Does Not Exist', + 'telephone_id_is_in_use' => 'Telephone ID Is In Use', ]; diff --git a/resources/lang/fa/messages.php b/resources/lang/fa/messages.php index 6cdc4a1..c45de66 100644 --- a/resources/lang/fa/messages.php +++ b/resources/lang/fa/messages.php @@ -9,4 +9,5 @@ return [ 'the_operator_is_offline' => 'اپراتور آفلاین است.', 'operator_could_not_connect' => 'عدم اتصال اپراتور', 'combination_of_category_and_subcategory_does_not_exist' => 'ترکیب موضوع و زیر موضوع نا معتبر می باشد', + 'telephone_id_is_in_use' => 'این تلفن درحال استفاده است', ]; diff --git a/routes/web.php b/routes/web.php index 3c21171..1726c4b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -25,7 +25,7 @@ Route::prefix('server')->group(function () { ->group(function () { Route::get('/info', 'info')->name('info'); Route::post('/change_password', 'changePassword')->name('changePassword'); - Route::post('/permissions', 'permissions')->name('permissions'); + Route::get('/permissions', 'permissions')->name('permissions'); }); Route::prefix('users') @@ -53,7 +53,7 @@ Route::prefix('server')->group(function () { ->middleware('auth:sanctum') ->controller(CategoryController::class) ->group(function () { - Route::get('/categories', 'list'); + Route::get('/list', 'list'); }); Route::middleware('auth:sanctum') From 5d3924c51bd0c0e8f796282b5f0b8a286f51f0ed Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 7 May 2025 11:32:05 +0330 Subject: [PATCH 3/8] rename role --- app/Http/Controllers/Admin/UserManagementController.php | 2 +- app/Http/Requests/Admin/UserManagement/StoreRequest.php | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Admin/UserManagementController.php b/app/Http/Controllers/Admin/UserManagementController.php index 0ea644d..ab8725e 100644 --- a/app/Http/Controllers/Admin/UserManagementController.php +++ b/app/Http/Controllers/Admin/UserManagementController.php @@ -67,7 +67,7 @@ class UserManagementController extends Controller 'telephone_id' => $request->telephone_id, ]); - $user->assignRole($request->role); + $user->assignRole($request->role_id); }); return $this->successResponse(); diff --git a/app/Http/Requests/Admin/UserManagement/StoreRequest.php b/app/Http/Requests/Admin/UserManagement/StoreRequest.php index 616f5c8..f828f54 100644 --- a/app/Http/Requests/Admin/UserManagement/StoreRequest.php +++ b/app/Http/Requests/Admin/UserManagement/StoreRequest.php @@ -31,10 +31,9 @@ class StoreRequest extends FormRequest 'phone_number' => 'required|numeric|digits:11|unique:users,phone_number|regex:/^09\d{9}$/', 'province_id' => 'required|exists:provinces,id', 'password' => 'required|regex:/^(?=.*[a-zA-Z])(?=.*\d).+$/|min:8', - 'role' => 'required|exists:roles,id', + 'role_id' => 'required|exists:roles,id', 'avatar' => 'mimes:png,jpg,pdf|max:2048', 'email' => 'email|unique:users,email', - 'telephone_id' => 'required|string|unique:users,telephone_id' ]; } } From ee943dd76fb517cf98b0e68a7da17ef6821a745c Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 7 May 2025 11:52:06 +0330 Subject: [PATCH 4/8] add province list api --- app/Http/Controllers/ProvinceController.php | 19 +++++++++++++++++++ .../2025_04_28_110000_create_users_table.php | 2 +- routes/web.php | 7 +++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/ProvinceController.php diff --git a/app/Http/Controllers/ProvinceController.php b/app/Http/Controllers/ProvinceController.php new file mode 100644 index 0000000..5e2f4f3 --- /dev/null +++ b/app/Http/Controllers/ProvinceController.php @@ -0,0 +1,19 @@ +successResponse(Province::all('id', 'name')); + + } +} diff --git a/database/migrations/2025_04_28_110000_create_users_table.php b/database/migrations/2025_04_28_110000_create_users_table.php index 55e3dda..ddf1cb2 100644 --- a/database/migrations/2025_04_28_110000_create_users_table.php +++ b/database/migrations/2025_04_28_110000_create_users_table.php @@ -26,7 +26,7 @@ return new class extends Migration $table->string('email')->unique()->nullable(); $table->dateTime('last_login')->nullable(); $table->string('telephone_id')->unique()->nullable(); - $table->boolean('is_online'); + $table->boolean('is_online')->default(false); $table->rememberToken()->nullable(); $table->timestamps(); }); diff --git a/routes/web.php b/routes/web.php index 1726c4b..b6ad3f2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -6,6 +6,7 @@ use App\Http\Controllers\AuthController; use App\Http\Controllers\CallController; use App\Http\Controllers\CategoryController; use App\Http\Controllers\ProfileController; +use App\Http\Controllers\ProvinceController; use App\Http\Middleware\SuperAdminCheck; use Illuminate\Support\Facades\Route; @@ -67,4 +68,10 @@ Route::prefix('server')->group(function () { Route::post('/{permission}', 'update')->name('update'); Route::delete('/{permission}', 'destroy')->name('destroy'); }); + + Route::prefix('provinces') + ->controller(ProvinceController::class) + ->group(function () { + Route::get('/list', 'list')->name('list'); + }); }); From d9ee1ca3516ac1de35b4d4637dc7c33183b6c054 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 7 May 2025 13:41:10 +0330 Subject: [PATCH 5/8] rmove extra role columns --- app/Http/Controllers/Admin/UserManagementController.php | 3 +-- app/Http/Controllers/ProvinceController.php | 1 - app/Http/Resources/Admin/UserResource.php | 2 +- app/Models/User.php | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Admin/UserManagementController.php b/app/Http/Controllers/Admin/UserManagementController.php index ab8725e..be1e8c6 100644 --- a/app/Http/Controllers/Admin/UserManagementController.php +++ b/app/Http/Controllers/Admin/UserManagementController.php @@ -28,11 +28,10 @@ class UserManagementController extends Controller $allowedSortings = $columns; - $allowedRelations = array('roles'); + $allowedRelations = array('roles:id,name_fa'); $query = User::query()->where('username', "<>", "witel"); - $data = DataTableFacade::run( $query, $request, diff --git a/app/Http/Controllers/ProvinceController.php b/app/Http/Controllers/ProvinceController.php index 5e2f4f3..6ab542f 100644 --- a/app/Http/Controllers/ProvinceController.php +++ b/app/Http/Controllers/ProvinceController.php @@ -14,6 +14,5 @@ class ProvinceController extends Controller public function list(): JsonResponse { return $this->successResponse(Province::all('id', 'name')); - } } diff --git a/app/Http/Resources/Admin/UserResource.php b/app/Http/Resources/Admin/UserResource.php index c53f084..7f81196 100644 --- a/app/Http/Resources/Admin/UserResource.php +++ b/app/Http/Resources/Admin/UserResource.php @@ -25,7 +25,7 @@ class UserResource extends JsonResource 'position' => $this->position, 'province_id' => $this->province_id, 'province_name' => $this->province_name, - 'role' => $this->getRoleNames()->first(), + 'role' => $this->roles->pluck('id', 'name_fa'), 'telephone_id' => $this->telephone_id ]; } diff --git a/app/Models/User.php b/app/Models/User.php index 94702a7..f3f3154 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -15,7 +15,7 @@ class User extends Authenticatable protected $guarded = []; - protected $hidden = ['password']; + protected $hidden = ['password', 'pivot']; public string $guard_name = 'web'; public function storeFile($file, $name) From 992ddf2f66450a3bce7f0ab61eeb9741d7427c67 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Wed, 7 May 2025 14:14:59 +0330 Subject: [PATCH 6/8] improve controller and write requst for update and store ,write route --- .../Admin/RoleManagementController.php | 12 +++--- .../Admin/RoleManagement/StoreRequest.php | 30 +++++++++++++++ .../Admin/RoleManagement/UpdateRequest.php | 37 +++++++++++++++++++ routes/web.php | 13 +++++++ 4 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 app/Http/Requests/Admin/RoleManagement/StoreRequest.php create mode 100644 app/Http/Requests/Admin/RoleManagement/UpdateRequest.php diff --git a/app/Http/Controllers/Admin/RoleManagementController.php b/app/Http/Controllers/Admin/RoleManagementController.php index 4ad96cb..0ca0947 100644 --- a/app/Http/Controllers/Admin/RoleManagementController.php +++ b/app/Http/Controllers/Admin/RoleManagementController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers\Admin; use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; +use App\Http\Requests\Admin\RoleManagement\StoreRequest; +use App\Http\Requests\Admin\RoleManagement\UpdateRequest; use App\Http\Resources\Admin\RoleResource; use app\Http\Traits\ApiResponse; use App\Models\Role; @@ -23,12 +25,10 @@ class RoleManagementController extends Controller $allowedFilters = $columns; $allowedSortings = $columns; - $allowedRelations = array('permissions'); - - $query = Role::query(); + $allowedRelations = array('permissions:id,name_fa'); $data = DataTableFacade::run( - $query, + Role::query(), $request, allowedFilters: $allowedFilters, allowedSortings: $allowedSortings, @@ -41,7 +41,7 @@ class RoleManagementController extends Controller /** * Store a newly created resource in storage. */ - public function store(Request $request): JsonResponse + public function store(StoreRequest $request): JsonResponse { DB::transaction(function () use ($request) { $role = Role::create([ @@ -66,7 +66,7 @@ class RoleManagementController extends Controller /** * Update the specified resource in storage. */ - public function update(Request $request, Role $role): JsonResponse + public function update(UpdateRequest $request, Role $role): JsonResponse { DB::transaction(function () use ($request, $role) { $role->update([ diff --git a/app/Http/Requests/Admin/RoleManagement/StoreRequest.php b/app/Http/Requests/Admin/RoleManagement/StoreRequest.php new file mode 100644 index 0000000..55f778f --- /dev/null +++ b/app/Http/Requests/Admin/RoleManagement/StoreRequest.php @@ -0,0 +1,30 @@ +|string> + */ + public function rules(): array + { + return [ + 'name' => 'required|unique:roles,name|string|max:255', + 'name_fa' => 'required|unique:roles,name_fa|string|max:255', + 'permissions' => 'required|exists:permissions,id|array', + ]; + } +} diff --git a/app/Http/Requests/Admin/RoleManagement/UpdateRequest.php b/app/Http/Requests/Admin/RoleManagement/UpdateRequest.php new file mode 100644 index 0000000..f7a0de7 --- /dev/null +++ b/app/Http/Requests/Admin/RoleManagement/UpdateRequest.php @@ -0,0 +1,37 @@ +|string> + */ + public function rules(): array + { + return [ + 'name' => [ + 'required','string', 'max:255', + Rule::unique('roles', 'name')->ignore($this->role->id) + ], + 'permissions' => 'required|exists:permissions,id|array', + 'name_fa' => [ + 'required','string', 'max:255', + Rule::unique('roles', 'name_fa')->ignore($this->role->id) + ], + ]; + } +} diff --git a/routes/web.php b/routes/web.php index b6ad3f2..a87fec5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,6 +1,7 @@ group(function () { ->group(function () { Route::get('/list', 'list')->name('list'); }); + + Route::middleware('auth:sanctum') + ->prefix('roles') + ->controller(RoleManagementController::class) + ->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('list', 'list')->name('list'); + Route::post('/', 'store')->name('store'); + Route::get('/{roll}', 'show')->name('show'); + Route::post('/{roll}', 'update')->name('update'); + Route::delete('/{roll}', 'destroy')->name('destroy'); + }); }); From 6995377b6f8d924a1eceb75dffaf019d3e56dbbe Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 7 May 2025 14:42:22 +0330 Subject: [PATCH 7/8] add id to guarded --- app/Http/Controllers/Admin/RoleManagementController.php | 2 ++ app/Http/Controllers/Admin/UserManagementController.php | 6 +++--- app/Http/Requests/Admin/UserManagement/UpdateRequest.php | 3 +-- app/Models/City.php | 2 +- app/Models/Event.php | 2 +- app/Models/Permission.php | 2 +- app/Models/Province.php | 2 +- app/Models/Role.php | 2 +- app/Models/User.php | 2 +- 9 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/Admin/RoleManagementController.php b/app/Http/Controllers/Admin/RoleManagementController.php index 0ca0947..8f9fec0 100644 --- a/app/Http/Controllers/Admin/RoleManagementController.php +++ b/app/Http/Controllers/Admin/RoleManagementController.php @@ -47,6 +47,7 @@ class RoleManagementController extends Controller $role = Role::create([ 'name' => $request->name, 'name_fa' => $request->name_fa, + 'guard_name' => 'web' ]); $role->syncPermissions($request->permissions); @@ -72,6 +73,7 @@ class RoleManagementController extends Controller $role->update([ 'name' => $request->name, 'name_fa' => $request->name_fa, + 'guard_name' => 'web' ]); $role->syncPermissions($request->permissions); diff --git a/app/Http/Controllers/Admin/UserManagementController.php b/app/Http/Controllers/Admin/UserManagementController.php index be1e8c6..e5b4e48 100644 --- a/app/Http/Controllers/Admin/UserManagementController.php +++ b/app/Http/Controllers/Admin/UserManagementController.php @@ -10,6 +10,7 @@ use App\Http\Requests\Admin\UserManagement\UpdateRequest; use App\Http\Resources\Admin\UserResource; use App\Http\Traits\ApiResponse; use App\Models\Province; +use App\Models\Role; use App\Models\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -66,7 +67,7 @@ class UserManagementController extends Controller 'telephone_id' => $request->telephone_id, ]); - $user->assignRole($request->role_id); + $user->assignRole(Role::query()->find($request->role_id)); }); return $this->successResponse(); @@ -97,10 +98,9 @@ class UserManagementController extends Controller 'province_fa' => $province->name, 'avatar' => $avatar, 'email' => $request->email, - 'telephone_id' => $request->telephone_id ]); - $user->syncRoles($request->role); + $user->syncRoles(Role::query()->find($request->role_id)); }); return $this->successResponse(); diff --git a/app/Http/Requests/Admin/UserManagement/UpdateRequest.php b/app/Http/Requests/Admin/UserManagement/UpdateRequest.php index c953eb3..436995c 100644 --- a/app/Http/Requests/Admin/UserManagement/UpdateRequest.php +++ b/app/Http/Requests/Admin/UserManagement/UpdateRequest.php @@ -36,10 +36,9 @@ class UpdateRequest extends FormRequest 'regex:/^09\d{9}$/' ], 'province_id' => 'required|exists:provinces,id', - 'role' => 'required|exists:roles,id', + 'role_id' => 'required|exists:roles,id', 'avatar' => 'mimes:png,jpg,pdf|max:2048', 'email' => ['email', Rule::unique('users', 'email')->ignore($this->user->id)], - 'telephone_id' => ['required', 'string', Rule::unique('users', 'telephone_id')->ignore($this->user->id)] ]; } } diff --git a/app/Models/City.php b/app/Models/City.php index 05fc89f..21dcf0e 100644 --- a/app/Models/City.php +++ b/app/Models/City.php @@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model; class City extends Model { use HasFactory; - protected $guarded = []; + protected $guarded = ['id']; } diff --git a/app/Models/Event.php b/app/Models/Event.php index e687502..6177e5a 100644 --- a/app/Models/Event.php +++ b/app/Models/Event.php @@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model; class Event extends Model { use HasFactory; - protected $guarded = []; + protected $guarded = ['id']; } diff --git a/app/Models/Permission.php b/app/Models/Permission.php index 87455f1..082b63c 100644 --- a/app/Models/Permission.php +++ b/app/Models/Permission.php @@ -9,5 +9,5 @@ use Spatie\Permission\Models\Permission as SpatiePermission; class Permission extends SpatiePermission { use HasFactory; - protected $guarded = []; + protected $guarded = ['id']; } diff --git a/app/Models/Province.php b/app/Models/Province.php index 9ae60b9..ba3097d 100644 --- a/app/Models/Province.php +++ b/app/Models/Province.php @@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model; class Province extends Model { use HasFactory; - protected $guarded = []; + protected $guarded = ['id']; } diff --git a/app/Models/Role.php b/app/Models/Role.php index 1371e16..dbd0c8c 100644 --- a/app/Models/Role.php +++ b/app/Models/Role.php @@ -9,5 +9,5 @@ use Spatie\Permission\Models\Role as SpatieRole; class Role extends SpatieRole { use HasFactory; - protected $guarded = []; + protected $guarded = ['id']; } diff --git a/app/Models/User.php b/app/Models/User.php index f3f3154..344e3f2 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -13,7 +13,7 @@ class User extends Authenticatable { use HasFactory, Notifiable, HasRoles; - protected $guarded = []; + protected $guarded = ['id']; protected $hidden = ['password', 'pivot']; public string $guard_name = 'web'; From f0e809996b3bca7917af87353084816898cb3495 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Wed, 7 May 2025 15:08:36 +0330 Subject: [PATCH 8/8] use auth web --- app/Models/CallHistory.php | 2 +- app/Models/Category.php | 2 +- app/Models/City.php | 2 +- app/Models/Event.php | 2 +- app/Models/Permission.php | 2 +- app/Models/Province.php | 2 +- app/Models/Role.php | 2 +- app/Models/User.php | 2 +- routes/web.php | 14 +++++++------- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/Models/CallHistory.php b/app/Models/CallHistory.php index 4633580..3ee9361 100644 --- a/app/Models/CallHistory.php +++ b/app/Models/CallHistory.php @@ -8,7 +8,7 @@ use Illuminate\Database\Eloquent\Model; class CallHistory extends Model { use HasFactory; - protected $guarded = ['id']; + protected $guarded = []; public static function recordHistory(Call $call, $event_id): void { diff --git a/app/Models/Category.php b/app/Models/Category.php index 159bad8..a1b2350 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model; class Category extends Model { use HasFactory; - protected $guarded = ['id']; + protected $guarded = []; } diff --git a/app/Models/City.php b/app/Models/City.php index 21dcf0e..05fc89f 100644 --- a/app/Models/City.php +++ b/app/Models/City.php @@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model; class City extends Model { use HasFactory; - protected $guarded = ['id']; + protected $guarded = []; } diff --git a/app/Models/Event.php b/app/Models/Event.php index 6177e5a..e687502 100644 --- a/app/Models/Event.php +++ b/app/Models/Event.php @@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model; class Event extends Model { use HasFactory; - protected $guarded = ['id']; + protected $guarded = []; } diff --git a/app/Models/Permission.php b/app/Models/Permission.php index 082b63c..87455f1 100644 --- a/app/Models/Permission.php +++ b/app/Models/Permission.php @@ -9,5 +9,5 @@ use Spatie\Permission\Models\Permission as SpatiePermission; class Permission extends SpatiePermission { use HasFactory; - protected $guarded = ['id']; + protected $guarded = []; } diff --git a/app/Models/Province.php b/app/Models/Province.php index ba3097d..9ae60b9 100644 --- a/app/Models/Province.php +++ b/app/Models/Province.php @@ -8,5 +8,5 @@ use Illuminate\Database\Eloquent\Model; class Province extends Model { use HasFactory; - protected $guarded = ['id']; + protected $guarded = []; } diff --git a/app/Models/Role.php b/app/Models/Role.php index dbd0c8c..1371e16 100644 --- a/app/Models/Role.php +++ b/app/Models/Role.php @@ -9,5 +9,5 @@ use Spatie\Permission\Models\Role as SpatieRole; class Role extends SpatieRole { use HasFactory; - protected $guarded = ['id']; + protected $guarded = []; } diff --git a/app/Models/User.php b/app/Models/User.php index 344e3f2..f3f3154 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -13,7 +13,7 @@ class User extends Authenticatable { use HasFactory, Notifiable, HasRoles; - protected $guarded = ['id']; + protected $guarded = []; protected $hidden = ['password', 'pivot']; public string $guard_name = 'web'; diff --git a/routes/web.php b/routes/web.php index a87fec5..5714891 100644 --- a/routes/web.php +++ b/routes/web.php @@ -22,7 +22,7 @@ Route::prefix('server')->group(function () { Route::prefix('profile') ->name('profile.') - ->middleware('auth:sanctum') + ->middleware('auth') ->controller(ProfileController::class) ->group(function () { Route::get('/info', 'info')->name('info'); @@ -32,7 +32,7 @@ Route::prefix('server')->group(function () { Route::prefix('users') ->name('users.') - ->middleware(['auth:sanctum', 'permission:manage_users']) + ->middleware(['auth', 'permission:manage_users']) ->controller(UserManagementController::class) ->group(function () { Route::get('/', 'index')->name('index'); @@ -47,18 +47,18 @@ Route::prefix('server')->group(function () { ->controller(CallController::class) ->group(function () { Route::post('/', 'store')->name('store'); - Route::get('/list', 'list')->name('list')->middleware(['auth:sanctum', 'permission:manage_calls']); - Route::post('/{call}', 'update')->name('update')->middleware(['auth:sanctum', 'permission:manage_calls']); + Route::get('/list', 'list')->name('list')->middleware(['auth', 'permission:manage_calls']); + Route::post('/{call}', 'update')->name('update')->middleware(['auth', 'permission:manage_calls']); }); Route::prefix('categories') - ->middleware('auth:sanctum') + ->middleware('auth') ->controller(CategoryController::class) ->group(function () { Route::get('/list', 'list'); }); - Route::middleware('auth:sanctum') + Route::middleware('auth') ->prefix('permissions') ->controller(PermissionManagementController::class) ->group(function () { @@ -76,7 +76,7 @@ Route::prefix('server')->group(function () { Route::get('/list', 'list')->name('list'); }); - Route::middleware('auth:sanctum') + Route::middleware('auth') ->prefix('roles') ->controller(RoleManagementController::class) ->group(function () {