From 9a38e061c9f3943e7e9e12e97e881f3aad823624 Mon Sep 17 00:00:00 2001 From: Julian Prieber <60265788+JulianPrieber@users.noreply.github.com> Date: Mon, 11 Jul 2022 16:05:28 +0200 Subject: [PATCH] Added option to create new user from the Admin Panel --- app/Http/Controllers/AdminController.php | 31 ++++++++++++++++++++++++ resources/views/panel/users.blade.php | 1 + routes/web.php | 1 + 3 files changed, 33 insertions(+) diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 706e91f..09d1616 100755 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; +use Illuminate\Auth\Events\Registered; use Auth; use Exception; @@ -100,6 +101,36 @@ class AdminController extends Controller return redirect('panel/users/all'); } + //Create new user from the Admin Panel + public function createNewUser() + { + + function random_str( + int $length = 64, + string $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' + ): string { + if ($length < 1) { + throw new \RangeException("Length must be a positive integer"); + } + $pieces = []; + $max = mb_strlen($keyspace, '8bit') - 1; + for ($i = 0; $i < $length; ++$i) { + $pieces []= $keyspace[random_int(0, $max)]; + } + return implode('', $pieces); + } + + $user = User::create([ + 'name' => 'Admin-Created-' . random_str(8), + 'email' => random_str(8) . '@test.com', + 'password' => Hash::make(random_str(32)), + 'role' => 'user', + 'block' => 'no', + ]); + + return redirect('panel/edit-user/'. $user->id); + } + //Show user to edit public function showUser(request $request) { diff --git a/resources/views/panel/users.blade.php b/resources/views/panel/users.blade.php index c4aa90f..7c9e042 100755 --- a/resources/views/panel/users.blade.php +++ b/resources/views/panel/users.blade.php @@ -43,5 +43,6 @@ @endforeach + + Add new user @endsection diff --git a/routes/web.php b/routes/web.php index b71e5ec..5a3bfaf 100755 --- a/routes/web.php +++ b/routes/web.php @@ -101,6 +101,7 @@ Route::get('/panel/users/block/{block}/{id}', [AdminController::class, 'blockUse Route::get('/panel/users/verify/-{verify}/{id}', [AdminController::class, 'verifyUser'])->name('verifyUser'); Route::get('/panel/edit-user/{id}', [AdminController::class, 'showUser'])->name('showUser'); Route::post('/panel/edit-user/{id}', [AdminController::class, 'editUser'])->name('editUser'); +Route::get('/panel/new-user', [AdminController::class, 'createNewUser'])->name('createNewUser'); Route::get('/panel/pages', [AdminController::class, 'showSitePage'])->name('showSitePage'); Route::post('/panel/pages', [AdminController::class, 'editSitePage'])->name('editSitePage'); Route::get('/panel/advanced-config', [AdminController::class, 'showFileEditor'])->name('showFileEditor');