Browse Source

Merge pull request #517 from jozefbonnar/email

Allows admins to force verify a users email
Dennis 2 years ago
parent
commit
487dd09f3e
4 changed files with 21 additions and 1 deletions
  1. 12 0
      app/Http/Controllers/Admin/UserController.php
  2. 7 0
      app/Models/User.php
  3. 1 1
      public/install/index.php
  4. 1 0
      routes/web.php

+ 12 - 0
app/Http/Controllers/Admin/UserController.php

@@ -160,6 +160,17 @@ class UserController extends Controller
         $user->delete();
         return redirect()->back()->with('success', __('user has been removed!'));
     }
+    /**
+     * Verifys the users email
+     *
+     * @param User $user
+     * @return RedirectResponse
+     */
+    public function verifyEmail(Request $request, User $user)
+    {
+        $user->verifyEmail();
+        return redirect()->back()->with('success', __('Email has been verified!'));
+    }
 
     /**
      * @param Request $request
@@ -285,6 +296,7 @@ class UserController extends Controller
                 $suspendText = $user->isSuspended() ? __("Unsuspend") : __("Suspend");
                 return '
                 <a data-content="' . __("Login as User") . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.loginas', $user->id) . '" class="btn btn-sm btn-primary mr-1"><i class="fas fa-sign-in-alt"></i></a>
+                <a data-content="' . __("Verify") . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.verifyEmail', $user->id) . '" class="btn btn-sm btn-primary mr-1"><i class="fas fa-sign-in-alt"></i></a>
                 <a data-content="' . __("Show") . '" data-toggle="popover" data-trigger="hover" data-placement="top"  href="' . route('admin.users.show', $user->id) . '" class="btn btn-sm text-white btn-warning mr-1"><i class="fas fa-eye"></i></a>
                 <a data-content="' . __("Edit") . '" data-toggle="popover" data-trigger="hover" data-placement="top"  href="' . route('admin.users.edit', $user->id) . '" class="btn btn-sm btn-info mr-1"><i class="fas fa-pen"></i></a>
                <form class="d-inline" method="post" action="' . route('admin.users.togglesuspend', $user->id) . '">

+ 7 - 0
app/Models/User.php

@@ -259,4 +259,11 @@ class User extends Authenticatable implements MustVerifyEmail
         $status = str_replace(' ', '/', $status);
         return $status;
     }
+
+    public function verifyEmail()
+    {
+        $this->forceFill([
+            'email_verified_at' => now(),
+        ])->save();
+    }
 }

+ 1 - 1
public/install/index.php

@@ -448,7 +448,7 @@ echo $cardheader;
                             ?>
                             <p class="login-box-msg">All done!</p>
                             <p class="login-box-msg">You may navigate to your Dashboard now and log in!</p>
-                            <a href="<?php echo "https://" . $_SERVER['SERVER_NAME']; ?>">
+                            <a href="<?php echo getEnvironmentValue("APP_URL"); ?>">
                                 <button class="btn btn-success">Lets go!</button>
                             </a>
                             </div>

+ 1 - 0
routes/web.php

@@ -114,6 +114,7 @@ Route::middleware(['auth', 'checkSuspended'])->group(function () {
         #users
         Route::get("users.json", [UserController::class, "json"])->name('users.json');
         Route::get('users/loginas/{user}', [UserController::class, 'loginAs'])->name('users.loginas');
+        Route::get('users/verifyEmail/{user}', [UserController::class, 'verifyEmail'])->name('users.verifyEmail');
         Route::get('users/datatable', [UserController::class, 'datatable'])->name('users.datatable');
         Route::get('users/notifications', [UserController::class, 'notifications'])->name('users.notifications');
         Route::post('users/notifications', [UserController::class, 'notify'])->name('users.notifications');