Create user ready

This commit is contained in:
Александр Бабкин
2022-06-24 12:47:49 +03:00
parent 5c51767351
commit a2f47d1ba7
6 changed files with 133 additions and 7 deletions

View File

@@ -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'));
}
/**

View File

@@ -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;
}

View File

@@ -748,5 +748,8 @@
"Zimbabwe": "Зимбабве",
"Zip / Postal Code": "Индекс",
"Åland Islands": "Аландские острова",
"User name": "Имя пользователя"
"User name": "Имя пользователя",
"Users": "Пользователи",
"User list": "Список пользователей",
"Create user": "Создать пользователя"
}

View 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>

View File

@@ -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,7 +9,34 @@
<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">&nbsp;</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
</div>

View File

@@ -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>