Create user ready
This commit is contained in:
@@ -3,6 +3,10 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Validation\Rules;
|
||||
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
@@ -13,7 +17,8 @@ class UserController extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return view('admin.users.list');
|
||||
$users = User::all();
|
||||
return view('admin.users.list',['users'=>$users]);
|
||||
//
|
||||
}
|
||||
|
||||
@@ -24,7 +29,7 @@ class UserController extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
return view('admin.users.create');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -35,7 +40,23 @@ class UserController extends Controller
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
$request->validate([
|
||||
'username' => ['required', 'string', 'max:255'],
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||
'password' => ['required', 'confirmed', Rules\Password::defaults()],
|
||||
]);
|
||||
|
||||
$user = User::create([
|
||||
'username' => $request->username,
|
||||
'name' => $request->name,
|
||||
'email' => $request->email,
|
||||
'is_admin' => false,
|
||||
'password' => Hash::make($request->password),
|
||||
]);
|
||||
|
||||
return redirect(route('users.index'));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -697,6 +697,9 @@ select {
|
||||
.z-50 {
|
||||
z-index: 50;
|
||||
}
|
||||
.m-2 {
|
||||
margin: 0.5rem;
|
||||
}
|
||||
.mx-auto {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
@@ -758,6 +761,9 @@ select {
|
||||
.inline-flex {
|
||||
display: inline-flex;
|
||||
}
|
||||
.table {
|
||||
display: table;
|
||||
}
|
||||
.grid {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
@@ -748,5 +748,8 @@
|
||||
"Zimbabwe": "Зимбабве",
|
||||
"Zip / Postal Code": "Индекс",
|
||||
"Åland Islands": "Аландские острова",
|
||||
"User name": "Имя пользователя"
|
||||
"User name": "Имя пользователя",
|
||||
"Users": "Пользователи",
|
||||
"User list": "Список пользователей",
|
||||
"Create user": "Создать пользователя"
|
||||
}
|
||||
67
resources/views/admin/users/create.blade.php
Normal file
67
resources/views/admin/users/create.blade.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<x-app-layout>
|
||||
<x-slot name="header">
|
||||
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
|
||||
{{ __('Create user') }}
|
||||
</h2>
|
||||
</x-slot>
|
||||
|
||||
<div class="py-12">
|
||||
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
||||
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
|
||||
<div class="p-6 bg-white border-b border-gray-200">
|
||||
|
||||
<form method="POST" action="{{ route('users.store') }}">
|
||||
@csrf
|
||||
<!-- 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>
|
||||
|
||||
<!-- Name -->
|
||||
<div>
|
||||
<x-label for="name" :value="__('Name')" />
|
||||
|
||||
<x-input id="name" class="block mt-1 w-full" type="text" name="name" :value="old('name')" required autofocus />
|
||||
</div>
|
||||
|
||||
<!-- Email Address -->
|
||||
<div class="mt-4">
|
||||
<x-label for="email" :value="__('Email')" />
|
||||
|
||||
<x-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required />
|
||||
</div>
|
||||
|
||||
<!-- Email Address -->
|
||||
<div class="mt-4">
|
||||
<x-label for="email" :value="__('Email')" />
|
||||
|
||||
<x-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required />
|
||||
</div>
|
||||
|
||||
<!-- Password -->
|
||||
<div class="mt-4">
|
||||
<x-label for="password" :value="__('Password')" />
|
||||
|
||||
<x-input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="new-password" />
|
||||
</div>
|
||||
|
||||
<!-- Confirm Password -->
|
||||
<div class="mt-4">
|
||||
<x-label for="password_confirmation" :value="__('Confirm Password')" />
|
||||
|
||||
<x-input id="password_confirmation" class="block mt-1 w-full" type="password" name="password_confirmation" required />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-end mt-4">
|
||||
<x-button class="ml-4">
|
||||
{{ __('Register') }}
|
||||
</x-button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</x-app-layout>
|
||||
@@ -1,7 +1,7 @@
|
||||
<x-app-layout>
|
||||
<x-slot name="header">
|
||||
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
|
||||
{{ __('Users') }}
|
||||
{{ __('User list') }}
|
||||
</h2>
|
||||
</x-slot>
|
||||
|
||||
@@ -9,9 +9,36 @@
|
||||
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
||||
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
|
||||
<div class="p-6 bg-white border-b border-gray-200">
|
||||
User list must be here!!!
|
||||
|
||||
<a href="{{ route('users.create')}}">
|
||||
<x-button class="m-2">{{__('Create user')}}</x-button>
|
||||
</a>
|
||||
|
||||
<div align="center">
|
||||
<table class="table table-sm border-b border-gray-200">
|
||||
<tr class="border border-gray-200">
|
||||
<th class="p-2 border border-gray-200">
|
||||
{{ __('User name')}}
|
||||
</th>
|
||||
<th class="p-2 border border-gray-200">
|
||||
{{ __('Email')}}
|
||||
</th>
|
||||
<th class="p-2 border border-gray-200">
|
||||
{{ __('Actions')}}
|
||||
</th>
|
||||
</tr>
|
||||
@foreach ( $users as $user)
|
||||
<tr class="border border-gray-200">
|
||||
<td class="p-2 border border-gray-200">{{ $user->username }}</td>
|
||||
<td class="p-2 border border-gray-200">{{ $user->email }}</td>
|
||||
<td class="p-2 border border-gray-200"> </td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</x-app-layout>
|
||||
</x-app-layout>
|
||||
@@ -17,9 +17,11 @@
|
||||
</x-nav-link>
|
||||
</div>
|
||||
<div class="hidden space-x-8 sm:-my-px sm:ml-10 sm:flex">
|
||||
@if (Auth::user()->is_admin)
|
||||
<x-nav-link :href="route('users.index')" :active="request()->routeIs('users.index')">
|
||||
{{ __('Users') }}
|
||||
</x-nav-link>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user