From a6b32d0652cf7e5b0b486c85e0fd68555a945c47 Mon Sep 17 00:00:00 2001 From: carlos Date: Fri, 19 Jun 2020 15:59:28 -0300 Subject: [PATCH] minha conta --- app/Http/Controllers/UserController.php | 171 ++++--- resources/views/user/perfilUser.blade.php | 562 +++++++++++++--------- routes/web.php | 5 +- 3 files changed, 434 insertions(+), 304 deletions(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 131ae00..a93f299 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -15,6 +15,8 @@ use App\Trabalho; use App\Coautor; use App\Evento; use Carbon\Carbon; +use Illuminate\Validation\Rule; +use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Log; class UserController extends Controller @@ -41,75 +43,116 @@ class UserController extends Controller return view('user.perfilUser',['user'=>$user,'end'=>$end]); } function editarPerfil(Request $request){ + $id = Auth()->user()->id; + $user = User::find($id); + if ($request->tipo != "proponente") { + $validated = $request->validate([ + 'name' => 'required', + 'tipo' => 'required', + 'email' => 'required', + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'celular' => 'required', + 'cpf' => 'required|cpf', + ]); + } else { + $validated = $request->validate([ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'email', 'max:255'], + 'cpf' => ['required', 'cpf'], + 'celular' => ['required', 'string'], + 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], + 'instituicaoSelect' => ['required_without:instituicao'], + 'cargo' => ['required'], + 'vinculo' => ['required'], + 'outro' => ['required_if:vinculo,Outro'], + 'titulacaoMaxima' => ['required_with:anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'titulacaoMaxima' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), + 'anoTitulacao' => ['required_with:titulacaoMaxima,areaFormacao,bolsistaProdutividade,linkLattes'], + 'anoTitulacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), + 'areaFormacao' => ['required_with:titulacaoMaxima,anoTitulacao,bolsistaProdutividade,linkLattes'], + 'areaFormacao' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), + 'bolsistaProdutividade' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'], + 'bolsistaProdutividade' => Rule::requiredIf((isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')), + 'nivel' => ['required_if:bolsistaProdutividade,sim'], + 'nivel' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], + 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], + 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'required':''], + 'linkLattes' => [(isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando') ? 'link_lattes':''], + ]); + } - $validator = $request->validate([ - 'name' => 'required|string|max:255', - 'cpf' => 'required', - 'celular' => 'required|string', - 'instituicao' => 'required|string| max:255', - // 'especProfissional' => 'nullable|string', - 'rua' => 'required|string|max:255', - 'numero' => 'required|string', - 'bairro' => 'required|string|max:255', - 'cidade' => 'required|string|max:255', - 'uf' => 'required|string', - 'cep' => 'required|integer', - ]); - - if(Auth()->user()->usuarioTemp == true){ - - // criar endereço - $end = new Endereco(); - $end->rua = $request->input('rua'); - $end->numero = $request->input('numero'); - $end->bairro = $request->input('bairro'); - $end->cidade = $request->input('cidade'); - $end->uf = $request->input('uf'); - $end->cep = $request->input('cep'); - - $end->save(); - - // Atualizar dados não preenchidos de User - $user = User::find($request->id); - $user->name = $request->input('name'); - $user->cpf = $request->input('cpf'); - $user->celular = $request->input('celular'); - $user->instituicao = $request->input('instituicao'); - // $user->especProfissional = $request->input('especProfissional'); - $user->usuarioTemp = null; - $user->enderecoId = $end->id; - $user->save(); - - return redirect(route('home')); - + if ($request->alterarSenhaCheckBox != null) { + if (!(Hash::check($request->senha_atual, $user->password))) { + return redirect()->back()->withErrors(['senha_atual' => 'Senha atual não correspondente']); + } + + if (!($request->nova_senha === $request->confirmar_senha)) { + return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']); + } } - else { - - // User - $user = User::find($request->id); - $user->name = $request->input('name'); - $user->cpf = $request->input('cpf'); - $user->celular = $request->input('celular'); - $user->instituicao = $request->input('instituicao'); - // $user->especProfissional = $request->input('especProfissional'); - $user->usuarioTemp = null; - $user->save(); - - // endereço - $end = Endereco::find($user->enderecoId); - $end->rua = $request->input('rua'); - $end->numero = $request->input('numero'); - $end->bairro = $request->input('bairro'); - $end->cidade = $request->input('cidade'); - $end->uf = $request->input('uf'); - $end->cep = $request->input('cep'); - - $end->save(); - // dd([$user,$end]); - return redirect(route('home')); + switch ($request->tipo) { + case "administradorResponsavel": + $adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first(); + $adminResp->user_id = $user->id; + $adminResp->update(); + break; + case "avaliador": + $avaliador = Avaliador::where('user_id', '=', $id)->first(); + $avaliador->user_id = $user->id; + $avaliador->update(); + break; + case "proponente": + $proponente = Proponente::where('user_id', '=', $id)->first(); + if ($request->SIAPE != null) { + $proponente->SIAPE = $request->SIAPE; + } + $proponente->cargo = $request->cargo; + + if ($request->vinculo != 'Outro') { + $proponente->vinculo = $request->vinculo; + } else { + $proponente->vinculo = $request->outro; + } + + $proponente->titulacaoMaxima = $request->titulacaoMaxima; + $proponente->anoTitulacao = $request->anoTitulacao; + $proponente->areaFormacao = $request->areaFormacao; + $proponente->bolsistaProdutividade = $request->bolsistaProdutividade; + if ($request->bolsistaProdutividade == 'sim') { + $proponente->nivel = $request->nivel; + } + $proponente->linkLattes = $request->linkLattes; + + $proponente->user_id = $user->id; + $proponente->update(); + break; + case "participante": + $participante = Participante::where('user_id', '=', $id)->first(); + $participante->user_id = $user->id; + $participante->update(); + break; + } + $user->name = $request->name; + $user->tipo = $request->tipo; + $user->email = $request->email; + $user->cpf = $request->cpf; + $user->celular = $request->celular; + if ($request->instituicao != null) { + $user->instituicao = $request->instituicao; + } else if (isset($request->instituicaoSelect) && $request->instituicaoSelect != "Outra") { + $user->instituicao = $request->instituicaoSelect; } + + if ($request->alterarSenhaCheckBox != null) { + $user->password = bcrypt($request->nova_senha); + } + + $user->update(); + + return redirect( route('user.perfil') )->with(['mensagem' => 'Dados atualizados com sucesso.']); } diff --git a/resources/views/user/perfilUser.blade.php b/resources/views/user/perfilUser.blade.php index 3e09043..21da1d9 100644 --- a/resources/views/user/perfilUser.blade.php +++ b/resources/views/user/perfilUser.blade.php @@ -13,300 +13,325 @@ -
+ @csrf -
- + {{-- Nome | CPF --}} +
+ + @if(session('mensagem')) +
+
+

{{session('mensagem')}}

+
+
+ @endif
- - + + @error('name') - - {{ $message }} - + + {{ $message }} + @enderror
- - + + @error('cpf') - - {{ $message }} - + + {{ $message }} + @enderror
-
-
- -
- - - - @error('instituicao') - - {{ $message }} - - @enderror -
+ {{-- Instituição de Ensino e Celular --}} +
+
+ + + + @error('instituicao') + + {{ $message }} + + @enderror + @error('instituicaoSelect') + + {{ $message }} + + @enderror +
- - + + @error('celular') - - {{ $message }} - + + {{ $message }} + @enderror
+
+ + -
- -
- -
- - - - @error('instituicao') - - {{ $message }} - - @enderror + @error('email') + + {{ $message }} + + @enderror
-
- - {{--
-
-

Permissões

+
+
+ +
+ {{-- Email | Senha | Confirmar Senha --}} +
+
+ + - @if (!(is_null($adminResp))) -
-
- Tem permissão de Administrador Responsável -
-
- @else -
-
- Não tem permissão de Administrador Responsável + @error('senha_atual') + + {{ $message }} + + @enderror
-
- @endif - @if (!(is_null($avaliador))) -
-
- Tem permissão de Avaliador -
-
- @else -
-
- Não tem permissão de Avaliador -
-
- @endif --}} +
+ + - @if (!(is_null($proponente))) - {{--
-
- Tem permissão de proponente -
-
--}} -
-
-

Dados de proponente

-
+ @error('nova_senha') + + {{ $message }} + + @enderror
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- @else - {{--
-
- Não tem permissão de proponente -
-
--}} - @endif +
+ + - {{-- @if (!(is_null($participante))) -
-
- Tem permissão de participante -
-
- @else -
-
- Não tem permissão de participante + @error('confirmar_senha') + + {{ $message }} + + @enderror
- @endif --}} - {{--
-
-

Endereço

-
-
--}} + + @if(!(is_null($proponente))) +
- {{-- Endereço --}} - {{--
-
- - - - @error('cep') +
+

Dados de proponente

+
+
+
+ + + + @error('cargo') {{ $message }} - @enderror -
-
- - - - @error('rua') + @enderror +
+ +
+ + + + @error('vinculo') {{ $message }} - @enderror -
- -
- - - - @error('numero') - - {{ $message }} - - @enderror -
-
- - -
-
- - - - @error('bairro') + @enderror +
+ +
- -
- - - - @error('cidade') - - {{ $message }} - - @enderror + +
+
+
+ + + + @error('titulacaoMaxima') + + {{ $message }} + + @enderror +
+ +
+ + + + @error('anoTitulacao') + + {{ $message }} + + @enderror +
+
+ + + + @error('areaFormacao') + + {{ $message }} + + @enderror +
+
+ +
+ +
+ + + + @error('SIAPE') + + {{ $message }} + + @enderror +
+ +
+ + + + @error('linkLattes') + + {{ $message }} + + @enderror +
+ +
+
+ + @error('bolsistaProdutividade') + + {{ $message }} + + @enderror +
+ + @if ($proponente->bolsistaProdutividade =='sim') +
+ + + @error('nivel') + + {{ $message }} + + @enderror +
+ @else + + @endif +
-
- - - - - @error('uf') - - {{ $message }} - - @enderror
- -
-
- +
+ @endif + + +
+
+
-
-
--}} - - +
@endsection @section('javascript') @endsection diff --git a/routes/web.php b/routes/web.php index cb88fc1..001eb6a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -40,9 +40,8 @@ Route::get('/participante/index', 'ParticipanteController@index' Route::get('/participante/edital/{id}', 'ParticipanteController@edital' )->name('participante.edital'); //######### Rotas Administrador ################################# -Route::get('/perfil-usuario', 'UserController@minhaConta')->middleware('auth' )->name('user.perfil')->middleware(['auth', 'verified']); -Route::get('/perfil','UserController@perfil' )->name('perfil')->middleware(['auth', 'verified']); -Route::post('/perfil','UserController@editarPerfil' )->name('perfil')->middleware(['auth', 'verified']); +Route::get('/perfil-usuario', 'UserController@minhaConta' )->name('user.perfil')->middleware(['auth', 'verified']); +Route::post('/perfil-usuario', 'UserController@editarPerfil' )->name('perfil.edit')->middleware(['auth', 'verified']); Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){ -- GitLab