Browse Source

Use IDs instead of Role Names, Fix installer, Fix Register

Dennis 2 years ago
parent
commit
633a3d4dfa

+ 16 - 14
app/Http/Controllers/Admin/RoleController.php

@@ -3,6 +3,7 @@
 namespace App\Http\Controllers\Admin;
 
 use App\Http\Controllers\Controller;
+use App\Models\User;
 use Exception;
 use Illuminate\Contracts\Foundation\Application;
 use Illuminate\Contracts\View\Factory;
@@ -105,26 +106,26 @@ class RoleController extends Controller
             }
         }
 
-        if($role->id == 3 || $role->id == 1 || $role->id == 4){ //dont let the user change the names of these roles
-            $role->update([
-                'color' => $request->color
-            ]);
-        }else{
+        //if($role->id == 1 || $role->id == 3 || $role->id == 4){ //dont let the user change the names of these roles
+        //    $role->update([
+        //        'color' => $request->color
+        //    ]);
+        //}else{
             $role->update([
                 'name' => $request->name,
                 'color' => $request->color
             ]);
-        }
+        //}
 
-        if($role->id == 1){
-            return redirect()->route('admin.roles.index')->with('success', __('Role updated. Name and Permissions of this Role cannot be changed'));
-        }elseif($role->id == 4 || $role->id == 3){
-            return redirect()->route('admin.roles.index')->with('success', __('Role updated. Name of this Role cannot be changed'));
-        }else{
+        //if($role->id == 1){
+        //    return redirect()->route('admin.roles.index')->with('success', __('Role updated. Name and Permissions of this Role cannot be changed'));
+        //}elseif($role->id == 4 || $role->id == 3){
+        //    return redirect()->route('admin.roles.index')->with('success', __('Role updated. Name of this Role cannot be changed'));
+       // }else{
             return redirect()
                 ->route('admin.roles.index')
                 ->with('success', __('Role saved'));
-        }
+        //}
     }
 
     /**
@@ -135,14 +136,15 @@ class RoleController extends Controller
     public function destroy(Role $role)
     {
 
-        if($role->id == 3 || $role->id == 1 || $role->id == 2){ //cannot delete the hard coded roles
+        if($role->id == 1 || $role->id == 3 || $role->id == 4){ //cannot delete the hard coded roles
             return back()->with("error","You cannot delete that role");
         }
 
         $users = User::role($role)->get();
 
         foreach($users as $user){
-            $user->syncRoles(['Member']);
+            //$user->syncRoles(['Member']);
+            $user->syncRoles(4);
         }
 
         $role->delete();

+ 2 - 0
app/Http/Controllers/Auth/RegisterController.php

@@ -139,6 +139,8 @@ class RegisterController extends Controller
 
         ]);
 
+        $user->syncRoles(4);
+
         $response = $this->pterodactyl->application->post('/application/users', [
             'external_id' => $user->pterodactyl_id,
             'username' => $user->name,

+ 2 - 1
app/Http/Middleware/isAdmin.php

@@ -18,7 +18,8 @@ class isAdmin
      */
     public function handle(Request $request, Closure $next)
     {
-        if (Auth::user() && Auth::user()->hasRole("Admin")) {
+        //if (Auth::user() && Auth::user()->hasRole("Admin")) {
+        if (Auth::user() && Auth::user()->hasRole(1)) {
             return $next($request);
         }
 

+ 1 - 1
database/migrations/2023_04_03_231829_update_users_table.php

@@ -26,7 +26,7 @@ return new class extends Migration
     public function down()
     {
         Schema::table('users', function (Blueprint $table) {
-            $table->integer('pterodactyl_id')->nullable->change();
+            $table->integer('pterodactyl_id')->nullable()->change();
         });
     }
 };

+ 0 - 51
database/migrations/2023_04_29_233120_drop_roles.php

@@ -1,51 +0,0 @@
-<?php
-
-use App\Models\User;
-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
-{
-    /**
-     * Run the migrations.
-     *
-     * @return void
-     */
-    public function up()
-    {
-        Artisan::call('db:seed', [
-            '--class' => 'PermissionsSeeder',
-        ]);
-
-        Schema::table('users', function ($table) {
-            $table->dropColumn('role');
-        });
-    }
-
-    /**
-     * Reverse the migrations.
-     *
-     * @return void
-     */
-    public function down()
-    {
-        Schema::table('users', function($table) {
-            $table->string('role')->default('member');
-        });
-
-        $users = User::with('roles')->get();
-        foreach($users as $user){
-            if($user->hasRole(1)){
-                $user->role = "admin";
-            }elseif ($user->hasRole(3)){
-                $user->role = "client";
-            }else{
-                $user->role = "member";
-            }
-            $user->save();
-        }
-
-    }
-};

+ 8 - 3
database/seeders/PermissionsSeeder.php

@@ -32,9 +32,14 @@ class PermissionsSeeder extends Seeder
             $admin->syncRoles(1);
         }
 
-        $admins = User::where("role","client")->get();
-        foreach($admins as $admin) {
-            $admin->syncRoles(3);
+        $mods = User::where("role","moderator")->get();
+        foreach($mods as $mod) {
+            $mod->syncRoles(2);
+        }
+
+        $clients = User::where("role","client")->get();
+        foreach($clients as $client) {
+            $client->syncRoles(3);
         }
 
 

+ 7 - 3
public/install/forms.php

@@ -1,5 +1,7 @@
 <?php
-
+ini_set('display_errors', 1);
+ini_set('display_startup_errors', 1);
+error_reporting(E_ALL);
 
 use PHPMailer\PHPMailer\Exception;
 use PHPMailer\PHPMailer\PHPMailer;
@@ -77,6 +79,7 @@ if (isset($_POST['feedDB'])) {
     $logs .= run_console('php artisan storage:link');
     $logs .= run_console('php artisan migrate --seed --force');
     $logs .= run_console('php artisan db:seed --class=ExampleItemsSeeder --force');
+    $logs .= run_console('php artisan db:seed --class=PermissionsSeeder --force');
 
     wh_log($logs, 'debug');
 
@@ -292,8 +295,9 @@ if (isset($_POST['createUser'])) {
     }
 
     $random = generateRandomString();
-    $query1 = 'INSERT INTO `' . getenv('DB_DATABASE') . "`.`users` (`name`, `credits`, `server_limit`, `pterodactyl_id`, `email`, `password`, `created_at`, `referral_code`) VALUES ('$name', 'admin', '250', '1', '$pteroID', '$mail', '$pass', CURRENT_TIMESTAMP, '$random')";
-    $query2 = 'INSERT INTO `' . getenv('DB_DATABASE') . "`.`model_has_roles` (`role_id`, `model_type`, `model_id`) VALUES ('1', 'App\Models\User', '1')";
+
+    $query1 = 'INSERT INTO `' . getenv('DB_DATABASE') . "`.`users` (`name`, `role`, `credits`, `server_limit`, `pterodactyl_id`, `email`, `password`, `created_at`, `referral_code`) VALUES ('$name', 'admin', '250', '1', '$pteroID', '$mail', '$pass', CURRENT_TIMESTAMP, '$random')";
+    $query2 = "INSERT INTO `" . getenv('DB_DATABASE') . "`.`model_has_roles` (`role_id`, `model_type`, `model_id`) VALUES ('1', 'App\\\Models\\\User', '1')";
     if ($db->query($query1) && $db->query($query2)) {
         wh_log('Created user with Email ' . $mail . ' and pterodactyl ID ' . $pteroID, 'info');
         header('LOCATION: index.php?step=7');

+ 2 - 2
themes/default/views/layouts/main.blade.php

@@ -255,7 +255,7 @@
                             </li>
                         @endif
 
-                        @if ((Auth::user()->hasRole("Admin") || Auth::user()->role == 'moderator') && $ticket_enabled)
+                        @if ((Auth::user()->hasRole(1) || Auth::user()->role == 'moderator') && $ticket_enabled)
                             <li class="nav-header">{{ __('Moderation') }}</li>
 
                             <li class="nav-item">
@@ -274,7 +274,7 @@
                             </li>
                         @endif
 
-                        @if (Auth::user()->hasRole("Admin"))
+                        @if (Auth::user()->hasRole(1))
                             <li class="nav-header">{{ __('Administration') }}</li>
 
                             <li class="nav-item">