diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 84255b9be35897e35be51a4ecda7e7ddb6577a81..cdf967383ea63c02c5b96173391d008b873cf977 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 af2380a7f12fbd587ae2f99a54e3248dbfed9072..c302d34994131bda4ea7d0ce0cf4cb6c4b6cb54f 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 f5cde33f364225964cb7ba4c28935909c1f9294f..03545661656e75ac1484610e25d43fbe3486e3af 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 c96499632b5a218f98d68807bf82e5fdc2f60b07..501fe085e4beee69ca7b5e4badaec9a5e014e435 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 -