Commit 4ab799ca authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

add correções de crud de usuário

parent 28cd190a
...@@ -7,6 +7,7 @@ use App\Models\Util\Menu; ...@@ -7,6 +7,7 @@ use App\Models\Util\Menu;
use App\Models\Util\Status; use App\Models\Util\Status;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use NunoMaduro\Collision\Adapters\Phpunit\State; use NunoMaduro\Collision\Adapters\Phpunit\State;
class UserController extends Controller class UserController extends Controller
...@@ -59,26 +60,54 @@ class UserController extends Controller ...@@ -59,26 +60,54 @@ class UserController extends Controller
]); ]);
} }
// Admin
public function actionCreate(Request $request) public function actionCreate(Request $request)
{ {
$model = new User();
return view('users.create', [ return view('users.create', [
'menu' => Menu::USERS, 'menu' => Menu::USERS,
'model' => $model,
]); ]);
} }
public function actionStore(Request $request) public function actionStore(Request $request)
{ {
dd($request->all()); $request->validate(User::ruleDefault(), User::messages());
$model = new User();
$model->fill($request->all());
$model->status = Status::ATIVO;
$email_splited = explode('@', $model->email);
$password = array_shift($email_splited);
$model->password = Hash::make($password);
if($model->save()) {
return redirect()->route('user_edit', ['id' => $model->id])->with('success', 'Usuário cadastrado com sucesso!');
} }
public function actionEdit($id, Request $request) return redirect()->with('fail', 'Falha ao cadastrar Usuário!');
}
public function actionEdit($id)
{ {
$model = User::find($id);
$status = [
Status::ATIVO => Status::listStatus(Status::ATIVO),
Status::INATIVO => Status::listStatus(Status::INATIVO)
];
return view('users.update', [
'menu' => Menu::USERS,
'model' => $model,
'status' => $status,
]);
} }
public function actionUpdate($id, Request $request) public function actionUpdate($id, Request $request)
{ {
dd($id);
} }
public function actionDelete($id) { public function actionDelete($id) {
......
...@@ -40,6 +40,46 @@ class User extends Authenticatable ...@@ -40,6 +40,46 @@ class User extends Authenticatable
'email_verified_at' => 'datetime' 'email_verified_at' => 'datetime'
]; ];
// Validate User General: name, email and password
public static function ruleDefault()
{
return [
'name' => ['required', 'min:4'],
'email' => ['required', 'email']
];
}
public static function validatePassword()
{
return [
];
}
// Validate User from Type Admin
public static function ruleAdmin()
{
return [
];
}
// Validate User from Type Teacher
public static function ruleTeacher()
{
return [];
}
public static function messages()
{
return [
'name.required' => 'O campo "Nome" é obrigatório!',
'email.required' => 'O "E-Mail" é obrigatório',
];
}
/** /**
* Validar os campos de acordo com as regras implementadas * Validar os campos de acordo com as regras implementadas
* *
...@@ -47,13 +87,13 @@ class User extends Authenticatable ...@@ -47,13 +87,13 @@ class User extends Authenticatable
public static function validator($attributes, $rule_password = false) { public static function validator($attributes, $rule_password = false) {
$rules = [ $rules = [
'email' => ['required', 'email', ], 'name' => ['required'],
'name' => ['required', ] 'email' => ['required', 'email'],
]; ];
if($rule_password) { if($rule_password) {
$rules = [ $rules = [
'password' => ['required', 'min:6'], 'password' => ['required', 'min:8'],
'password_confirmation' => [], 'password_confirmation' => [],
]; ];
} }
......
...@@ -16,7 +16,7 @@ class CreateUserTypeTable extends Migration ...@@ -16,7 +16,7 @@ class CreateUserTypeTable extends Migration
Schema::create('user_type', function (Blueprint $table) { Schema::create('user_type', function (Blueprint $table) {
$table->id(); $table->id();
$table->foreignId('user_id'); $table->foreignId('user_id');
$table->foreignId('pad_id'); $table->foreignId('pad_id')->nullable();
$table->tinyInteger('type'); $table->tinyInteger('type');
$table->tinyInteger('status'); $table->tinyInteger('status');
$table->boolean('selected'); $table->boolean('selected');
......
@php
use App\Models\Util\Form;
if(!isset($type)) {
$type = Form::TYPE_CREATE;
}
@endphp
<!-- Tabs --> <!-- Tabs -->
<div> <div>
<ul class="nav nav-tabs"> <ul class="nav nav-tabs">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link active" id="user-tab" data-bs-toggle="tab" data-bs-target="#user-container" type="button" role="tab" aria-controls="user-container" arial-selected="true"> Usuário </button> <button class="nav-link active" id="user-tab" data-bs-toggle="tab" data-bs-target="#user-container" type="button" role="tab" aria-controls="user-container" arial-selected="true"> Usuário </button>
</li> </li>
@if($type == Form::TYPE_UPDATE) @if( $model->exists )
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" id="paper-tab" data-bs-toggle="tab" data-bs-target="#paper-container" type="button" role="tab" aria-controls="paper-container" arial-selected="false"> Papeis </button> <button class="nav-link" id="paper-tab" data-bs-toggle="tab" data-bs-target="#paper-container" type="button" role="tab" aria-controls="paper-container" arial-selected="false"> Papeis </button>
</li> </li>
...@@ -33,32 +24,37 @@ ...@@ -33,32 +24,37 @@
<div class="mb-4 col-12"> <div class="mb-4 col-12">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="name"> Nome </label> <label class="form-label" for="name"> Nome </label>
<input type="text" name="name" id="name" class="form-control" placeholder="Nome"> <input type="text" name="name" id="name" class="form-control @error('name') is-invalid @enderror" placeholder="Nome" value="{{ $model->exists ? $model->name : old('name') }}">
@include('components.divs.errors', ['field' => 'name'])
</div> </div>
</div> </div>
<div class="mb-4 col-12"> <div class="mb-4 col-12">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="email"> E-Mail </label> <label class="form-label" for="email"> E-Mail </label>
<input type="text" name="email" id="email" class="form-control" placeholder="E-Mail"> <input type="text" name="email" id="email" class="form-control @error('email') is-invalid @enderror" placeholder="E-Mail" value="{{ $model->exists ? $model->email : old('email') }}">
@include('components.divs.errors', ['field' => 'email'])
</div> </div>
</div> </div>
@if($type == Form::TYPE_UPDATE) @if( $model->exists )
<div class="mb-4 col-12"> <div class="mb-4 col-12">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="status"> Status </label> <label class="form-label" for="status"> Status </label>
<select class="form-select" name="status" id="status"> <select class="form-select" name="status" id="status">
<option value="" disabled selected hidden> Selecione... </option> @foreach($status as $value => $text)
@foreach([] as $option) @if($model->status == $value)
<option value="{{ $value }}" selected> {{ $text }} </option>
@else
<option value="{{ $value }}"> {{ $text }} </option>
@endif
@endforeach @endforeach
</select> </select>
</div> </div>
</div> </div>
@endif @endif
@if($type == Form::TYPE_UPDATE) @if( $model->exists )
<div class="mb-4 col-6"> <div class="mb-4 col-6">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="curso_id"> Curso </label> <label class="form-label" for="curso_id"> Curso </label>
...@@ -72,7 +68,7 @@ ...@@ -72,7 +68,7 @@
</div> </div>
@endif @endif
@if($type == Form::TYPE_UPDATE) @if( $model->exists )
<div class="mb-4 col-6"> <div class="mb-4 col-6">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="campus_id"> Campus </label> <label class="form-label" for="campus_id"> Campus </label>
...@@ -88,11 +84,11 @@ ...@@ -88,11 +84,11 @@
<div class="mt-1 text-end"> <div class="mt-1 text-end">
<div class="modal-footer"> <div class="modal-footer">
@if($type == Form::TYPE_CREATE) @if( !$model->exists )
@include('components.buttons.btn-save', ['content' => 'Cadastrar']) @include('components.buttons.btn-save', ['content' => 'Cadastrar'])
@endif @endif
@if($type == Form::TYPE_UPDATE) @if( $model->exists )
@include('components.buttons.btn-save', ['content' => 'Atualizar']) @include('components.buttons.btn-save', ['content' => 'Atualizar'])
@endif @endif
...@@ -103,7 +99,7 @@ ...@@ -103,7 +99,7 @@
</div> </div>
</div> </div>
@if($type == Form::TYPE_UPDATE) @if( $model->exists )
<div id="paper-container" class="tab-pane fade" role="tabpanel" aria-labelledby="paper-tab"> <div id="paper-container" class="tab-pane fade" role="tabpanel" aria-labelledby="paper-tab">
<div class="border border-rounded mt-2 p-2"> <div class="border border-rounded mt-2 p-2">
<div class="row"> <div class="row">
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</div> </div>
<form action="{{route('user_store')}}" method="POST"> <form action="{{route('user_store')}}" method="POST">
@include('users._form', ['type' => 'create']) @include('users._form', ['model' => $model])
</form> </form>
</div> </div>
......
...@@ -21,8 +21,15 @@ ...@@ -21,8 +21,15 @@
@include('components.alerts') @include('components.alerts')
<div class="mb-3">
<h3 class="h4"> Atualizar - Usuário </h3>
</div>
<form action="{{route('user_update', ['id' => $model->id])}}" method="POST"> <form action="{{route('user_update', ['id' => $model->id])}}" method="POST">
@include('users._form', ['type' => 'update']) @include('users._form', [
'model' => $model,
'status' => $status,
])
</form> </form>
</div> </div>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment