Create user ready
This commit is contained in:
@@ -3,6 +3,10 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Validation\Rules;
|
||||||
|
|
||||||
|
|
||||||
class UserController extends Controller
|
class UserController extends Controller
|
||||||
{
|
{
|
||||||
@@ -13,7 +17,8 @@ class UserController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function index()
|
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()
|
public function create()
|
||||||
{
|
{
|
||||||
//
|
return view('admin.users.create');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -35,7 +40,23 @@ class UserController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
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-50 {
|
||||||
z-index: 50;
|
z-index: 50;
|
||||||
}
|
}
|
||||||
|
.m-2 {
|
||||||
|
margin: 0.5rem;
|
||||||
|
}
|
||||||
.mx-auto {
|
.mx-auto {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
@@ -758,6 +761,9 @@ select {
|
|||||||
.inline-flex {
|
.inline-flex {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
}
|
}
|
||||||
|
.table {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
.grid {
|
.grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -748,5 +748,8 @@
|
|||||||
"Zimbabwe": "Зимбабве",
|
"Zimbabwe": "Зимбабве",
|
||||||
"Zip / Postal Code": "Индекс",
|
"Zip / Postal Code": "Индекс",
|
||||||
"Åland Islands": "Аландские острова",
|
"Å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-app-layout>
|
||||||
<x-slot name="header">
|
<x-slot name="header">
|
||||||
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
|
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
|
||||||
{{ __('Users') }}
|
{{ __('User list') }}
|
||||||
</h2>
|
</h2>
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
@@ -9,9 +9,36 @@
|
|||||||
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
<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="bg-white overflow-hidden shadow-sm sm:rounded-lg">
|
||||||
<div class="p-6 bg-white border-b border-gray-200">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</x-app-layout>
|
</x-app-layout>
|
||||||
@@ -17,9 +17,11 @@
|
|||||||
</x-nav-link>
|
</x-nav-link>
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden space-x-8 sm:-my-px sm:ml-10 sm:flex">
|
<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')">
|
<x-nav-link :href="route('users.index')" :active="request()->routeIs('users.index')">
|
||||||
{{ __('Users') }}
|
{{ __('Users') }}
|
||||||
</x-nav-link>
|
</x-nav-link>
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user