From 490bc64f414d4d58ba39f3017af1b661e2dcbe76 Mon Sep 17 00:00:00 2001 From: 1day2die Date: Sun, 30 Apr 2023 02:34:11 +0200 Subject: [PATCH] basic roles --- app/Http/Controllers/Admin/UserController.php | 29 +++++++++---------- app/Http/Controllers/ProfileController.php | 15 ---------- .../default/views/admin/users/edit.blade.php | 2 +- themes/default/views/profile/index.blade.php | 6 ++-- 4 files changed, 19 insertions(+), 33 deletions(-) diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index a7e494a9..caf8fafd 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -26,6 +26,7 @@ use Illuminate\Support\HtmlString; use Illuminate\Validation\Rule; use Illuminate\Validation\ValidationException; use Spatie\QueryBuilder\QueryBuilder; +use Spatie\Permission\Models\Role; class UserController extends Controller { @@ -108,9 +109,11 @@ class UserController extends Controller */ public function edit(User $user, GeneralSettings $general_settings) { + $roles = Role::all(); return view('admin.users.edit')->with([ 'user' => $user, - 'credits_display_name' => $general_settings->credits_display_name + 'credits_display_name' => $general_settings->credits_display_name, + 'roles' => $roles ]); } @@ -135,6 +138,11 @@ class UserController extends Controller 'referral_code' => "required|string|min:2|max:32|unique:users,referral_code,{$user->id}", ]); + //update roles + if ($request->roles) { + $user->syncRoles($request->roles); + } + if (isset($this->pterodactyl->getUser($request->input('pterodactyl_id'))['errors'])) { throw ValidationException::withMessages([ 'pterodactyl_id' => [__("User does not exists on pterodactyl's panel")], @@ -329,22 +337,13 @@ class UserController extends Controller '; }) ->editColumn('role', function (User $user) { - switch ($user->role) { - case 'admin': - $badgeColor = 'badge-danger'; - break; - case 'moderator': - $badgeColor = 'badge-info'; - break; - case 'client': - $badgeColor = 'badge-success'; - break; - default: - $badgeColor = 'badge-secondary'; - break; + $html = ''; + + foreach ($user->roles as $role) { + $html .= "$role->name"; } - return '' . $user->role . ''; + return $html; }) ->editColumn('last_seen', function (User $user) { return $user->last_seen ? $user->last_seen->diffForHumans() : __('Never'); diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 5c4293ae..8a042501 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -26,27 +26,12 @@ class ProfileController extends Controller /** Display a listing of the resource. */ public function index(UserSettings $user_settings, DiscordSettings $discord_settings, ReferralSettings $referral_settings) { - switch (Auth::user()->role) { - case 'admin': - $badgeColor = 'badge-danger'; - break; - case 'mod': - $badgeColor = 'badge-info'; - break; - case 'client': - $badgeColor = 'badge-success'; - break; - default: - $badgeColor = 'badge-secondary'; - break; - } return view('profile.index')->with([ 'user' => Auth::user(), 'credits_reward_after_verify_discord' => $user_settings->credits_reward_after_verify_discord, 'force_email_verification' => $user_settings->force_email_verification, 'force_discord_verification' => $user_settings->force_discord_verification, - 'badgeColor' => $badgeColor, 'discord_client_id' => $discord_settings->client_id, 'discord_client_secret' => $discord_settings->client_secret, 'referral_enabled' => $referral_settings->enabled, diff --git a/themes/default/views/admin/users/edit.blade.php b/themes/default/views/admin/users/edit.blade.php index b4c840bf..22157191 100644 --- a/themes/default/views/admin/users/edit.blade.php +++ b/themes/default/views/admin/users/edit.blade.php @@ -105,7 +105,7 @@ @if(isset($user) && $user->roles->contains($role)) selected @endif value="{{$role->id}}">{{$role->name}} @endforeach - +
diff --git a/themes/default/views/profile/index.blade.php b/themes/default/views/profile/index.blade.php index 82d09e14..6fe0208b 100644 --- a/themes/default/views/profile/index.blade.php +++ b/themes/default/views/profile/index.blade.php @@ -118,8 +118,10 @@ @endif
-
{{ $user->role }} +
+ @foreach ($user->roles as $role) + {{$role->name}} + @endforeach
{{ $user->created_at->isoFormat('LL') }}