add permission instead of role

This commit is contained in:
2025-05-05 14:21:34 +03:30
parent 852eeb608b
commit 02ef3ae2ad
4 changed files with 45 additions and 43 deletions

View File

@@ -3,6 +3,7 @@ FROM docker.arvancloud.ir/php:8.3-fpm-alpine3.21
# Install common php extension dependencies
RUN apk update && apk add --no-cache \
bash \
nano \
curl \
libpng \
libpng-dev \
@@ -19,8 +20,7 @@ RUN apk update && apk add --no-cache \
WORKDIR /var/www/crm
COPY . .
RUN chown -R www-data:www-data /var/www/crm \
&& chmod -R 777 /var/www/crm/storage
RUN chmod -R 777 /var/www/crm/storage /var/www/crm/bootstrap/cache
# install composer

View File

@@ -68,7 +68,7 @@ class UserManagementController extends Controller
'telephone_id' => $request->telephone_id,
]);
$user->givePermissionTo($request->permissions);
$user->syncPermissions($request->permissions);
});
return $this->successResponse();
@@ -102,7 +102,7 @@ class UserManagementController extends Controller
'telephone_id' => $request->telephone_id
]);
$user->syncRoles($request->roles);
$user->syncPermissions($request->permissions);
});
return $this->successResponse();

View File

@@ -36,7 +36,7 @@ class UpdateRequest extends FormRequest
'regex:/^09\d{9}$/'
],
'province_id' => 'required|exists:provinces,id',
'roles' => 'required|exists:roles,id',
'permissions' => 'required|exists:permissions,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)]

View File

@@ -8,45 +8,47 @@ use App\Http\Controllers\ProfileController;
use App\Http\Middleware\SuperAdminCheck;
use Illuminate\Support\Facades\Route;
Route::prefix('auth')
->name('auth.')
->controller(AuthController::class)
->group(function () {
Route::post('/login', 'login')->name('login');
Route::post('/logout', 'logout')->name('logout');
});
Route::prefix('server')->group(function () {
Route::prefix('auth')
->name('auth.')
->controller(AuthController::class)
->group(function () {
Route::post('/login', 'login')->name('login');
Route::post('/logout', 'logout')->name('logout');
});
Route::prefix('profile')
->name('profile.')
->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::prefix('profile')
->name('profile.')
->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::prefix('users')
->name('users.')
->middleware(['auth:sanctum', 'permission:manage_users'])
->controller(UserManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/{user}', 'show')->middleware([SuperAdminCheck::class])->name('show');
Route::post('/', 'store')->name('store');
Route::post('/{user}', 'update')->middleware([SuperAdminCheck::class])->name('update');
Route::delete('/{user}', 'destroy')->middleware([SuperAdminCheck::class])->name('destroy');
});
Route::prefix('users')
->name('users.')
->middleware(['auth:sanctum', 'permission:manage_users'])
->controller(UserManagementController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/{user}', 'show')->middleware([SuperAdminCheck::class])->name('show');
Route::post('/', 'store')->name('store');
Route::post('/{user}', 'update')->middleware([SuperAdminCheck::class])->name('update');
Route::delete('/{user}', 'destroy')->middleware([SuperAdminCheck::class])->name('destroy');
});
Route::prefix('calls')
->name('calls.')
->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::prefix('calls')
->name('calls.')
->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::middleware('auth')
->controller(CategoryController::class)
->group(function () {
Route::get('/categories', 'list');
});
Route::middleware('auth')
->controller(CategoryController::class)
->group(function () {
Route::get('/categories', 'list');
});
});