From 4ab799ca0612d4d9499f0b33eeed6d1a4e6a4c0a Mon Sep 17 00:00:00 2001 From: alissonalbuquerque Date: Sun, 11 Dec 2022 17:55:54 -0300 Subject: [PATCH] =?UTF-8?q?add=20corre=C3=A7=C3=B5es=20de=20crud=20de=20us?= =?UTF-8?q?u=C3=A1rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/UserController.php | 41 ++++++++++++++--- app/Models/User.php | 46 +++++++++++++++++-- ...22_07_22_024613_create_user_type_table.php | 2 +- resources/views/users/_form.blade.php | 38 +++++++-------- resources/views/users/create.blade.php | 2 +- resources/views/users/update.blade.php | 9 +++- 6 files changed, 105 insertions(+), 33 deletions(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 84255b9..cdf9673 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -7,6 +7,7 @@ use App\Models\Util\Menu; use App\Models\Util\Status; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Hash; use NunoMaduro\Collision\Adapters\Phpunit\State; class UserController extends Controller @@ -59,26 +60,54 @@ class UserController extends Controller ]); } + // Admin public function actionCreate(Request $request) - { + { + $model = new User(); + return view('users.create', [ 'menu' => Menu::USERS, + 'model' => $model, ]); } 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!'); + } + + return redirect()->with('fail', 'Falha ao cadastrar Usuário!'); } - public function actionEdit($id, Request $request) + 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) { - + dd($id); } public function actionDelete($id) { diff --git a/app/Models/User.php b/app/Models/User.php index af2380a..c302d34 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -40,6 +40,46 @@ class User extends Authenticatable '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 * @@ -47,13 +87,13 @@ class User extends Authenticatable public static function validator($attributes, $rule_password = false) { $rules = [ - 'email' => ['required', 'email', ], - 'name' => ['required', ] + 'name' => ['required'], + 'email' => ['required', 'email'], ]; if($rule_password) { $rules = [ - 'password' => ['required', 'min:6'], + 'password' => ['required', 'min:8'], 'password_confirmation' => [], ]; } diff --git a/database/migrations/2022_07_22_024613_create_user_type_table.php b/database/migrations/2022_07_22_024613_create_user_type_table.php index f5cde33..0354566 100644 --- a/database/migrations/2022_07_22_024613_create_user_type_table.php +++ b/database/migrations/2022_07_22_024613_create_user_type_table.php @@ -16,7 +16,7 @@ class CreateUserTypeTable extends Migration Schema::create('user_type', function (Blueprint $table) { $table->id(); $table->foreignId('user_id'); - $table->foreignId('pad_id'); + $table->foreignId('pad_id')->nullable(); $table->tinyInteger('type'); $table->tinyInteger('status'); $table->boolean('selected'); diff --git a/resources/views/users/_form.blade.php b/resources/views/users/_form.blade.php index c964996..501fe08 100644 --- a/resources/views/users/_form.blade.php +++ b/resources/views/users/_form.blade.php @@ -1,19 +1,10 @@ - -@php - use App\Models\Util\Form; - - if(!isset($type)) { - $type = Form::TYPE_CREATE; - } -@endphp -