Selaa lähdekoodia

Password Changes from Admin User Edit (#33)

* Password Changes from Admin User Edit

With this Commit Admins can change the user password from the admin user edit page

* Admin Password Change: UI Changes
LogischJo 4 vuotta sitten
vanhempi
commit
5aba2c27bc

+ 18 - 5
app/Http/Controllers/Admin/UserController.php

@@ -13,6 +13,7 @@ use Illuminate\Http\RedirectResponse;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Hash;
 use Illuminate\Validation\Rule;
 use Illuminate\Validation\ValidationException;
 
@@ -87,12 +88,12 @@ class UserController extends Controller
     public function update(Request $request, User $user)
     {
         $request->validate([
-            "name"           => "required|string|min:4|max:30",
+            "name" => "required|string|min:4|max:30",
             "pterodactyl_id" => "required|numeric|unique:users,pterodactyl_id,{$user->pterodactyl_id}",
-            "email"          => "required|string|email",
-            "credits"        => "required|numeric|min:0|max:1000000",
-            "server_limit"   => "required|numeric|min:0|max:1000000",
-            "role"           => Rule::in(['admin', 'mod', 'client', 'member']),
+            "email" => "required|string|email",
+            "credits" => "required|numeric|min:0|max:1000000",
+            "server_limit" => "required|numeric|min:0|max:1000000",
+            "role" => Rule::in(['admin', 'mod', 'client', 'member']),
         ]);
 
         if (is_null(Pterodactyl::getUser($request->input('pterodactyl_id')))) {
@@ -101,6 +102,18 @@ class UserController extends Controller
             ]);
         }
 
+
+        if (!is_null($request->input('new_password'))) {
+            $request->validate([
+                'new_password' => 'required|string|min:8',
+                'new_password_confirmation' => 'required|same:new_password'
+            ]);
+
+            $user->update([
+                'password' => Hash::make($request->input('new_password')),
+            ]);
+        }
+
         $user->update($request->all());
 
         return redirect()->route('admin.users.index')->with('success', 'User updated!');

+ 59 - 14
resources/views/admin/users/edit.blade.php

@@ -12,7 +12,8 @@
                     <ol class="breadcrumb float-sm-right">
                         <li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
                         <li class="breadcrumb-item"><a href="{{route('admin.users.index')}}">Users</a></li>
-                        <li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.users.edit' , $user->id)}}">Edit</a></li>
+                        <li class="breadcrumb-item"><a class="text-muted"
+                                                       href="{{route('admin.users.edit' , $user->id)}}">Edit</a></li>
                     </ol>
                 </div>
             </div>
@@ -28,7 +29,7 @@
                 <div class="col-lg-6">
                     <div class="card">
                         <div class="card-body">
-                            <form action="{{route('admin.users.update' , $user->id)}}" method="POST">
+                            <form action="{{route('admin.users.update', $user->id)}}" method="POST">
                                 @csrf
                                 @method('PATCH')
                                 <div class="form-group">
@@ -44,7 +45,8 @@
                                 <div class="form-group">
                                     <label for="email">Email</label>
                                     <input value="{{$user->email}}" id="email" name="email" type="text"
-                                           class="form-control @error('email') is-invalid @enderror" required="required">
+                                           class="form-control @error('email') is-invalid @enderror"
+                                           required="required">
                                     @error('email')
                                     <div class="invalid-feedback">
                                         {{$message}}
@@ -53,8 +55,10 @@
                                 </div>
                                 <div class="form-group">
                                     <label for="pterodactyl_id">Pterodactyl ID</label>
-                                    <input value="{{$user->pterodactyl_id}}" id="pterodactyl_id" name="pterodactyl_id" type="number"
-                                           class="form-control @error('pterodactyl_id') is-invalid @enderror" required="required">
+                                    <input value="{{$user->pterodactyl_id}}" id="pterodactyl_id" name="pterodactyl_id"
+                                           type="number"
+                                           class="form-control @error('pterodactyl_id') is-invalid @enderror"
+                                           required="required">
                                     @error('pterodactyl_id')
                                     <div class="invalid-feedback">
                                         {{$message}}
@@ -67,8 +71,10 @@
                                 </div>
                                 <div class="form-group">
                                     <label for="credits">Credits</label>
-                                    <input value="{{$user->credits}}" id="credits" name="credits" step="any" min="0" max="1000000"
-                                           type="number" class="form-control @error('credits') is-invalid @enderror" required="required">
+                                    <input value="{{$user->credits}}" id="credits" name="credits" step="any" min="0"
+                                           max="1000000"
+                                           type="number" class="form-control @error('credits') is-invalid @enderror"
+                                           required="required">
                                     @error('credits')
                                     <div class="invalid-feedback">
                                         {{$message}}
@@ -77,8 +83,10 @@
                                 </div>
                                 <div class="form-group">
                                     <label for="server_limit">Server Limit</label>
-                                    <input value="{{$user->server_limit}}" id="server_limit" name="server_limit" min="0" max="1000000"
-                                           type="number" class="form-control @error('server_limit') is-invalid @enderror"
+                                    <input value="{{$user->server_limit}}" id="server_limit" name="server_limit" min="0"
+                                           max="1000000"
+                                           type="number"
+                                           class="form-control @error('server_limit') is-invalid @enderror"
                                            required="required">
                                     @error('server_limit')
                                     <div class="invalid-feedback">
@@ -89,15 +97,19 @@
                                 <div class="form-group">
                                     <label for="role">Role</label>
                                     <div>
-                                        <select id="role" name="role" class="custom-select @error('role') is-invalid @enderror"
+                                        <select id="role" name="role"
+                                                class="custom-select @error('role') is-invalid @enderror"
                                                 required="required">
-                                            <option @if($user->role == 'admin') selected @endif class="text-danger" value="admin">
+                                            <option @if($user->role == 'admin') selected @endif class="text-danger"
+                                                    value="admin">
                                                 Administrator
                                             </option>
-                                            <option @if($user->role == 'client') selected @endif class="text-success" value="client">
+                                            <option @if($user->role == 'client') selected @endif class="text-success"
+                                                    value="client">
                                                 Client
                                             </option>
-                                            <option @if($user->role == 'member') selected @endif class="text-secondary" value="member">
+                                            <option @if($user->role == 'member') selected @endif class="text-secondary"
+                                                    value="member">
                                                 Member
                                             </option>
                                         </select>
@@ -111,13 +123,46 @@
                                 <div class="form-group text-right">
                                     <button type="submit" class="btn btn-primary">Submit</button>
                                 </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-6">
+                    <div class="card">
+                        <div class="card-body">
+                            <div class="col">
+                                <div class="form-group"><label>New Password</label> <input
+                                        class="form-control @error('new_password') is-invalid @enderror"
+                                        name="new_password" type="password" placeholder="••••••">
+
+                                    @error('new_password')
+                                    <div class="invalid-feedback">
+                                        {{$message}}
+                                    </div>
+                                    @enderror
+                                </div>
+                            </div>
+                            <div class="col">
+                                <div class="form-group"><label>Confirm Password</label>
+                                    <input
+                                        class="form-control @error('new_password_confirmation') is-invalid @enderror"
+                                        name="new_password_confirmation" type="password"
+                                        placeholder="••••••">
+
+                                    @error('new_password_confirmation')
+                                    <div class="invalid-feedback">
+                                        {{$message}}
+                                    </div>
+                                    @enderror
+                                </div>
+                            </div>
                             </form>
                         </div>
                     </div>
                 </div>
             </div>
-
         </div>
+
+
     </section>
     <!-- END CONTENT -->