admin users begin

This commit is contained in:
Александр Бабкин
2022-06-24 09:00:38 +03:00
parent 4578844d84
commit 2ff5204549
7 changed files with 148 additions and 7 deletions

View File

@@ -0,0 +1,84 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}

View File

@@ -63,5 +63,6 @@ class Kernel extends HttpKernel
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'admin' => \App\Http\Middleware\IsAdmin::class,
]; ];
} }

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class IsAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if (Auth::user() && Auth::user()->is_admin == true) {
return $next($request);
}
return redirect('/')->with('error', 'You have not admin access');
}
}

View File

@@ -29,7 +29,8 @@ class LoginRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'email' => ['required', 'string', 'email'], // 'email' => ['required', 'string', 'email'],
'username' => ['required', 'string'],
'password' => ['required', 'string'], 'password' => ['required', 'string'],
]; ];
} }
@@ -45,11 +46,19 @@ class LoginRequest extends FormRequest
{ {
$this->ensureIsNotRateLimited(); $this->ensureIsNotRateLimited();
if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) { // if (! Auth::attempt($this->only('email', 'password'), $this->boolean('remember'))) {
// RateLimiter::hit($this->throttleKey());
// throw ValidationException::withMessages([
// 'email' => trans('auth.failed'),
// ]);
// }
if (! Auth::attempt($this->only('username', 'password'), $this->boolean('remember'))) {
RateLimiter::hit($this->throttleKey()); RateLimiter::hit($this->throttleKey());
throw ValidationException::withMessages([ throw ValidationException::withMessages([
'email' => trans('auth.failed'), 'username' => trans('auth.failed'),
]); ]);
} }

View File

@@ -747,5 +747,6 @@
"Zambia": "Замбия", "Zambia": "Замбия",
"Zimbabwe": "Зимбабве", "Zimbabwe": "Зимбабве",
"Zip / Postal Code": "Индекс", "Zip / Postal Code": "Индекс",
"Åland Islands": "Аландские острова" "Åland Islands": "Аландские острова",
"User name": "Имя пользователя"
} }

View File

@@ -16,10 +16,17 @@
@csrf @csrf
<!-- Email Address --> <!-- Email Address -->
<div> <!-- <div>
<x-label for="email" :value="__('Email')" /> <x-label for="email" :value="__('Email')" />
<x-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus /> <x-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
</div> -->
<!-- User Name -->
<div>
<x-label for="username" :value="__('User name')" />
<x-input id="username" class="block mt-1 w-full" type="text" name="username" :value="old('username')" required autofocus />
</div> </div>
<!-- Password --> <!-- Password -->

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 55 KiB