Finish Roles API and Seeder

This commit is contained in:
Dennis 2023-05-08 11:11:01 +02:00 committed by GitHub
commit 04917a495e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 9 deletions

View file

@ -52,7 +52,7 @@ class RoleController extends Controller
public function store(Request $request)
{
$request->validate([
'name' => 'nullable|string|max:191',
'name' => 'required|string|max:191',
'color' => [
'required',
'regex:/^#([a-f0-9]{6}|[a-f0-9]{3})$/i'
@ -67,7 +67,10 @@ class RoleController extends Controller
]);
if ($request->permissions) {
$role->givePermissionTo($request->permissions);
$permissions = explode(",",$request->permissions);
foreach($permissions as $permission){
$role->givePermissionTo($permission);
}
}
return $role;
@ -111,20 +114,22 @@ class RoleController extends Controller
$role = Role::findOrFail($id);
$request->validate([
'name' => 'nullable|string|max:191',
'name' => 'sometimes|string|max:191',
'color' => [
'required',
'sometimes',
'regex:/^#([a-f0-9]{6}|[a-f0-9]{3})$/i'
],
'power' => 'required',
'power' => 'sometimes',
]);
if ($request->permissions) {
$role->givePermissionTo($request->permissions);
$permissions = explode(",",$request->permissions);
$role->syncPermissions($permissions);
}
$role->update($request->all());
//TODO PERMISSIONS?
$role->update($request->except('permissions'));
return $role;
}

View file

@ -104,7 +104,10 @@ class UserController extends Controller
'pterodactyl_error_status' => $response->toException()->getCode(),
]);
}
$user->update($request->all());
if($request->has("role")){
$user->syncRoles($request->role);
}
$user->update($request->except('role'));
return $user;
}

View file

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -16,6 +17,11 @@ return new class extends Migration
Schema::table('roles', function (Blueprint $table) {
$table->integer('power')->after("color")->default(50);
});
Artisan::call('db:seed', [
'--class' => 'PermissionsSeeder',
'--force' => true
]);
}
/**

View file

@ -1,6 +1,7 @@
<?php
use App\Http\Controllers\Api\NotificationController;
use App\Http\Controllers\Api\RoleController;
use App\Http\Controllers\Api\ServerController;
use App\Http\Controllers\Api\UserController;
use App\Http\Controllers\Api\VoucherController;
@ -31,6 +32,8 @@ Route::middleware('api.token')->group(function () {
// Route::get('/vouchers/{voucher}/users' , [VoucherController::class , 'users']);
Route::resource('vouchers', VoucherController::class)->except('create', 'edit');
Route::resource('roles', RoleController::class);
Route::get('/notifications/{user}', [NotificationController::class, 'index']);
Route::get('/notifications/{user}/{notification}', [NotificationController::class, 'view']);
Route::post('/notifications', [NotificationController::class, 'send']);