Commit 7b89bd30 authored by carlos's avatar carlos
Browse files

criando um usuario e editando como AdminResp

parent f8d4a9de
...@@ -121,35 +121,99 @@ class AdministradorController extends Controller ...@@ -121,35 +121,99 @@ class AdministradorController extends Controller
public function edit($id) { public function edit($id) {
$user = User::find($id); $user = User::find($id);
return view ('administrador.editar_user')->with(['user' => $user]);
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$avaliador = Avaliador::where('user_id', '=', $id)->first();
$proponente = Proponente::where('user_id', '=', $id)->first();
$participante = Participante::where('user_id', '=', $id)->first();
return view ('administrador.editar_user')->with(['user' => $user,
'adminResp' => $adminResp,
'proponente' => $proponente,
'participante' => $participante,]);
} }
public function update(Request $request, $id) { public function update(Request $request, $id) {
$user = User::find($id); $user = User::find($id);
if ($request->tipo != "proponente") {
$validated = $request->validate([ $validated = $request->validate([
'nome' => 'required', 'nome' => 'required',
'tipo' => 'required', 'tipo' => 'required',
'email' => 'required', 'email' => 'required',
'nova_senha' => 'required', // 'senha' => 'required',
'senha_atual' => 'required', // 'confirmar_senha' => 'required',
'confirmar_senha' => 'required', 'cpf' => 'required|cpf',
]);
} else {
$validated = $request->validate([
'nome' => 'required',
'tipo' => 'required',
'email' => 'required',
// 'senha' => 'required',
// 'confirmar_senha' => 'required',
'cpf' => 'required|cpf',
'cargo' => 'required',
'titulacaoMaxima' => 'required',
'anoTitulacao' => 'required',
'grandeArea' => 'required',
'bolsistaProdutividade' => 'required',
'nivel' => 'required',
'linkLattes' => 'required',
]); ]);
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)) { // if (!(Hash::check($request->senha_atual, $user->password))) {
return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']); // 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']);
// }
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();
$proponente->SIAPE = $request->SIAPE;
$proponente->cargo = $request->cargo;
$proponente->vinculo = $request->vinculo;
$proponente->titulacaoMaxima = $request->titulacaoMaxima;
$proponente->anoTitulacao = $request->anoTitulacao;
$proponente->grandeArea = $request->grandeArea;
$proponente->area = "teste";
$proponente->subArea = "teste";
$proponente->bolsistaProdutividade = $request->bolsistaProdutividade;
$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->nome; $user->name = $request->nome;
$user->tipo = $request->tipo; $user->tipo = $request->tipo;
$user->email = $request->email; $user->email = $request->email;
$user->password = bcrypt($request->nova_senha); $user->cpf = $request->cpf;
// $user->password = bcrypt($request->nova_senha);
$user->update(); $user->update();
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário atualizado com sucesso']); return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário atualizado com sucesso']);
} }
......
...@@ -64,6 +64,7 @@ class Kernel extends HttpKernel ...@@ -64,6 +64,7 @@ class Kernel extends HttpKernel
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'isTemp' => \App\Http\Middleware\IsTemp::class, 'isTemp' => \App\Http\Middleware\IsTemp::class,
'checkAdministrador' => \App\Http\Middleware\checkAdministrador::class, 'checkAdministrador' => \App\Http\Middleware\checkAdministrador::class,
'checkAdminResp' => \App\Http\Middleware\checkAdminResp::class,
]; ];
/** /**
......
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
use Illuminate\Support\Facades\Log;
class checkAdminResp
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!Auth::check()){
Log::debug('checkAdminResp');
return redirect('/');
}
if(Auth::user()->tipo=='administradorResponsavel' || Auth::user()->tipo=='administrador'){
return $next($request);
}
else{
return redirect('home')->with('error', 'Você não possui privilégios para acessa esta funcionalidade');
}
}
}
<?php
namespace App\Policies;
use App\User;
use Illuminate\Auth\Access\HandlesAuthorization;
class AdminPolicy
{
use HandlesAuthorization;
/**
* Create a new policy instance.
*
* @return void
*/
public function __construct()
{
//
}
public function isAdministrador(User $user) {
return $user->tipo === "administrador";
}
public function isAdminResp(User $user) {
return $user->tipo === "administradorResponsavel";
}
}
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
@enderror @enderror
<label for="email" class="col-form-label">{{ __('Email') }}</label> <label for="email" class="col-form-label">{{ __('Email') }}</label>
<input id="email" type="text" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ $user->email }}" required autocomplete="nome" autofocus> <input id="email" type="text" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ $user->email }}" required autocomplete="email" autofocus>
@error('email') @error('email')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -32,21 +32,53 @@ ...@@ -32,21 +32,53 @@
</span> </span>
@enderror @enderror
<label for="cpf" class="col-form-label">{{ __('CPF') }}</label>
<input id="cpf" type="text" class="form-control @error('cpf') is-invalid @enderror" name="cpf" value="{{ $user->cpf }}" required autocomplete="cpf" autofocus>
@error('cpf')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<label for="tipo" class="col-form-label">{{ __('Tipo') }}</label> <label for="tipo" class="col-form-label">{{ __('Tipo') }}</label>
<div> <div>
<select name="tipo" id=""> <select name="tipo" id="tipo" onchange="mudar()">
<option value="{{$user->tipo}}">{{$user->tipo}}<option> @can('isAdministrador', auth()->user())
<option value="administrador">administrador</option> @if ($user->tipo == 'administrador')
<option value="administradorResponsavel">administradorResponsavel</option> <option value="administrador" selected>Administrador</option>
<option value="coordenador">coordenador</option> @else
<option value="proponente">proponente</option> <option value="administrador">Administrador</option>
<option value="participante">participante</option> @endif
@if ($user->tipo == 'administradorResponsavel')
<option value="administradorResponsavel" selected>Administrador Responsavel</option>
@else
<option value="administradorResponsavel">Administrador Responsavel</option>
@endif
@endcan
@if ($user->tipo == 'avaliador')
<option value="coordenador" selected>Coordenador</option>
@else
<option value="coordenador">Coordenador</option>
@endif
@if ($user->tipo == 'proponente')
<option value="proponente" selected>Proponente</option>
@else
<option value="proponente">Proponente</option>
@endif
@if ($user->tipo == 'participante')
<option value="participante" selected>Participante</option>
@else
<option value="participante">Participante</option>
@endif
</select> </select>
</div> </div>
<label for="passworld" class="col-form-label">{{ __('Senha atual') }}</label> {{-- <label for="passworld" class="col-form-label">{{ __('Senha atual') }}</label>
<input id="passworld" type="text" class="form-control @error('senha_atual') is-invalid @enderror" name="senha_atual" value="" required autocomplete="nome" autofocus> <input id="passworld" type="text" class="form-control @error('senha_atual') is-invalid @enderror" name="senha_atual" value="" required autocomplete="senha_atual" autofocus>
@error('senha_atual') @error('senha_atual')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -55,7 +87,7 @@ ...@@ -55,7 +87,7 @@
@enderror @enderror
<label for="new_passworld" class="col-form-label">{{ __('Nova senha') }}</label> <label for="new_passworld" class="col-form-label">{{ __('Nova senha') }}</label>
<input id="new_passworld" type="text" class="form-control @error('nova_senha') is-invalid @enderror" name="nova_senha" value="" required autocomplete="nome" autofocus> <input id="new_passworld" type="text" class="form-control @error('nova_senha') is-invalid @enderror" name="nova_senha" value="" required autocomplete="nova_senha" autofocus>
@error('nova_senha') @error('nova_senha')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
...@@ -64,13 +96,74 @@ ...@@ -64,13 +96,74 @@
@enderror @enderror
<label for="confirm_passworld" class="col-form-label">{{ __('Confirmar nova senha') }}</label> <label for="confirm_passworld" class="col-form-label">{{ __('Confirmar nova senha') }}</label>
<input id="confirmar_passworld" type="text" class="form-control @error('confirmar_senha') is-invalid @enderror" name="confirmar_senha" value="" required autocomplete="nome" autofocus> <input id="confirmar_passworld" type="text" class="form-control @error('confirmar_senha') is-invalid @enderror" name="confirmar_senha" value="" required autocomplete="confirmar_senha" autofocus>
@error('confirmar_senha') @error('confirmar_senha')
<span class="invalid-feedback" role="alert"> <span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong> <strong>{{ $message }}</strong>
</span> </span>
@enderror @enderror --}}
@if ($user->tipo == "proponente")
<div id="proponente" style="display: none;">
<label class="col-form-label">{{ __('SIAPE') }}</label>
<input value="{{$proponente->SIAPE}}" id="SIAPE" type="text" class="form-control @error('SIAPE') is-invalid @enderror" name="SIAPE" autocomplete="SIAPE">
<label class="col-form-label">{{ __('Cargo') }}</label>
<input value="{{$proponente->cargo}}" id="cargo" type="text" class="form-control @error('cargo') is-invalid @enderror" name="cargo" autocomplete="cargo">
<label class="col-form-label">{{ __('Vinculo') }}</label>
<input value="{{$proponente->vinculo}}" id="vinculo" type="text" class="form-control @error('vinculo') is-invalid @enderror" name="vinculo" autocomplete="vinculo">
<label class="col-form-label">{{ __('Titulação Maxima') }}</label>
<input value="{{$proponente->titulacaoMaxima}}" id="titulacaoMaxima" type="text" class="form-control @error('titulacaoMaxima') is-invalid @enderror" name="titulacaoMaxima" autocomplete="titulacaoMaxima">
<label class="col-form-label">{{ __('Ano Titulação') }}</label>
<input value="{{$proponente->anoTitulacao}}" id="anoTitulacao" type="text" class="form-control @error('anoTitulacao') is-invalid @enderror" name="anoTitulacao" autocomplete="anoTitulacao">
<label class="col-form-label">{{ __('Área') }}</label>
<input value="{{$proponente->grandeArea}}" id="grandeArea" type="text" class="form-control @error('grandeArea') is-invalid @enderror" name="grandeArea" autocomplete="grandeArea">
<label class="col-form-label">{{ __('Bolsista Produtividade') }}</label>
<input value="{{$proponente->bolsistaProdutividade}}" id="bolsistaProdutividade" type="text" class="form-control @error('bolsistaProdutividade') is-invalid @enderror" name="bolsistaProdutividade" autocomplete="bolsistaProdutividade">
<label class="col-form-label">{{ __('Nivel') }}</label>
<input value="{{$proponente->nivel}}" id="nivel" type="text" class="form-control @error('nivel') is-invalid @enderror" name="nivel" autocomplete="nivel">
<label class="col-form-label">{{ __('Link do Lattes') }}</label>
<input value="{{$proponente->linkLattes}}" id="linkLattes" type="text" class="form-control @error('linkLattes') is-invalid @enderror" name="linkLattes" autocomplete="linkLattes">
</div>
@else
<div id="proponente" style="display: none;">
<label class="col-form-label">{{ __('SIAPE') }}</label>
<input value="" id="SIAPE" type="text" class="form-control @error('SIAPE') is-invalid @enderror" name="SIAPE" autocomplete="SIAPE">
<label class="col-form-label">{{ __('Cargo') }}</label>
<input value="" id="cargo" type="text" class="form-control @error('cargo') is-invalid @enderror" name="cargo" autocomplete="cargo">
<label class="col-form-label">{{ __('Vinculo') }}</label>
<input value="" id="vinculo" type="text" class="form-control @error('vinculo') is-invalid @enderror" name="vinculo" autocomplete="vinculo">
<label class="col-form-label">{{ __('Titulação Maxima') }}</label>
<input value="" id="titulacaoMaxima" type="text" class="form-control @error('titulacaoMaxima') is-invalid @enderror" name="titulacaoMaxima" autocomplete="titulacaoMaxima">
<label class="col-form-label">{{ __('Ano Titulação') }}</label>
<input value="" id="anoTitulacao" type="text" class="form-control @error('anoTitulacao') is-invalid @enderror" name="anoTitulacao" autocomplete="anoTitulacao">
<label class="col-form-label">{{ __('Área') }}</label>
<input value="" id="grandeArea" type="text" class="form-control @error('grandeArea') is-invalid @enderror" name="grandeArea" autocomplete="grandeArea">
<label class="col-form-label">{{ __('Bolsista Produtividade') }}</label>
<input value="" id="bolsistaProdutividade" type="text" class="form-control @error('bolsistaProdutividade') is-invalid @enderror" name="bolsistaProdutividade" autocomplete="bolsistaProdutividade">
<label class="col-form-label">{{ __('Nivel') }}</label>
<input value="" id="nivel" type="text" class="form-control @error('nivel') is-invalid @enderror" name="nivel" autocomplete="nivel">
<label class="col-form-label">{{ __('Link do Lattes') }}</label>
<input value="" id="linkLattes" type="text" class="form-control @error('linkLattes') is-invalid @enderror" name="linkLattes" autocomplete="linkLattes">
</div>
@endif
<br>
<button type="submit" class="btn btn-primary" style="position:relative;top:10px;">{{ __('Salvar') }}</button> <button type="submit" class="btn btn-primary" style="position:relative;top:10px;">{{ __('Salvar') }}</button>
</div> </div>
...@@ -79,3 +172,27 @@ ...@@ -79,3 +172,27 @@
</div> </div>
@endsection @endsection
@section('javascript')
<script>
var divProponente = document.getElementById('proponente');
var comboBoxTipo = document.getElementById('tipo');
if (comboBoxTipo.value == "proponente") {
divProponente.style.display = "inline";
} else {
divProponente.style.display = "none";
}
function mudar() {
var divProponente = document.getElementById('proponente');
var comboBoxTipo = document.getElementById('tipo');
if (comboBoxTipo.value == "proponente") {
divProponente.style.display = "inline";
} else {
divProponente.style.display = "none";
}
}
</script>
@endsection
\ No newline at end of file
...@@ -48,8 +48,10 @@ ...@@ -48,8 +48,10 @@
<div> <div>
<label for="tipo" class="col-form-label">{{ __('Tipo') }}</label> <label for="tipo" class="col-form-label">{{ __('Tipo') }}</label>
<select name="tipo" id="tipo" onchange="mudar()"> <select name="tipo" id="tipo" onchange="mudar()">
@can('isAdministrador', auth()->user())
<option value="administrador">Administrador</option> <option value="administrador">Administrador</option>
<option value="administradorResponsavel">Administrador responsavel</option> <option value="administradorResponsavel">Administrador responsavel</option>
@endcan
<option value="avaliador">Avaliador</option> <option value="avaliador">Avaliador</option>
<option value="proponente">Proponente</option> <option value="proponente">Proponente</option>
<option value="participante">Participante</option> <option value="participante">Participante</option>
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
<tbody> <tbody>
@foreach ($users as $user) @foreach ($users as $user)
@if (auth()->user()->id != $user->id) @if (auth()->user()->id != $user->id)
@can('isAdministrador', auth()->user())
<tr> <tr>
<td> <td>
{{ $user->name }} {{ $user->name }}
...@@ -64,6 +65,38 @@ ...@@ -64,6 +65,38 @@
</div> </div>
</td> </td>
</tr> </tr>
@else
@if ($user->tipo != "administrador" && $user->tipo != "administradorResponsavel")
<tr>
<td>
{{ $user->name }}
</td>
<td>{{ $user->tipo }}</td>
<td>{{ $user->creaet_at }}</td>
<td>
<div class="btn-group dropright dropdown-options">
<a id="options" class="dropdown-toggle " data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
</a>
<div class="dropdown-menu">
<a href="{{route('admin.user.edit', $user->id)}}" class="dropdown-item">
<img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt="">
Editar
</a>
<form method="POST" action="{{route('admin.user.destroy', $user->id)}}">
{{ csrf_field() }}
<button type="submit" class="dropdown-item">
<img src="{{asset('img/icons/trash-alt-regular.svg')}}" class="icon-card" alt="">
Deletar
</button>
</form>
</div>
</div>
</td>
</tr>
@endif
@endcan
@endif @endif
@endforeach @endforeach
</tbody> </tbody>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</div> </div>
<div class="col-sm-4 d-flex justify-content-center"> <div class="col-sm-4 d-flex justify-content-center">
<a href="{{ route('adminResp.usuarios') }}" style="text-decoration:none; color: inherit;"> <a href="{{ route('admin.usuarios') }}" style="text-decoration:none; color: inherit;">
<div class="card text-center " style="border-radius: 30px; width: 18rem;"> <div class="card text-center " style="border-radius: 30px; width: 18rem;">
<div class="card-body d-flex justify-content-center"> <div class="card-body d-flex justify-content-center">
<h2 style="padding-top:15px">Usuários</h2> <h2 style="padding-top:15px">Usuários</h2>
......
...@@ -121,7 +121,6 @@ ...@@ -121,7 +121,6 @@
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{{ route('admin.usuarios') }}">Usuários</a> <a class="nav-link" href="{{ route('admin.usuarios') }}">Usuários</a>
</li> </li>
<li class="nav-item dropdown"> <li class="nav-item dropdown">
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre> <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
...@@ -132,11 +131,11 @@ ...@@ -132,11 +131,11 @@
<a class="dropdown-item" href="{{ route('user.perfil') }}"> <a class="dropdown-item" href="{{ route('user.perfil') }}">
<img src="{{asset('img/icons/perfil.svg')}}" alt=""> <img src="{{asset('img/icons/perfil.svg')}}" alt="">
{{ __('Minha Conta') }} {{ __('Minha Conta') }}
</a> {{-- </a>
<a class="dropdown-item" href="{{ route('user.meusTrabalhos') }}"> <a class="dropdown-item" href="{{ route('user.meusTrabalhos') }}">
<img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt=""> <img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt="">
{{ __('Participante') }} {{ __('Participante') }}
</a> </a> --}}
<a class="dropdown-item" href="{{ route('logout') }}" <a class="dropdown-item" href="{{ route('logout') }}"
onclick="event.preventDefault(); onclick="event.preventDefault();
document.getElementById('logout-form').submit();"> document.getElementById('logout-form').submit();">
......
...@@ -42,14 +42,14 @@ Route::post('/perfil','UserController@editarPerfil')->name('perfil')->middleware ...@@ -42,14 +42,14 @@ Route::post('/perfil','UserController@editarPerfil')->name('perfil')->middleware
// Rotas Administrador // Rotas Administrador
Route::get('/home-admin', 'AdministradorController@index')->middleware('checkAdministrador')->name('admin.index'); Route::get('/home-admin', 'AdministradorController@index')->middleware('checkAdministrador')->name('admin.index');
Route::get('/usuarios', 'AdministradorController@usuarios')->middleware('checkAdministrador')->name('admin.usuarios'); Route::get('/usuarios', 'AdministradorController@usuarios')->middleware('checkAdminResp')->name('admin.usuarios');
Route::get('/perfil-usuario', 'UserController@minhaConta')->middleware('auth')->name('user.perfil'); Route::get('/perfil-usuario', 'UserController@minhaConta')->middleware('auth')->name('user.perfil');
//Rotas da administração dos usuários //Rotas da administração dos usuários
Route::get('/usuarios/novo', 'AdministradorController@create')->middleware('checkAdministrador')->name('admin.user.create'); Route::get('/usuarios/novo', 'AdministradorController@create')->middleware('checkAdminResp')->name('admin.user.create');
Route::post('/usuarios/salvar-novo', 'AdministradorController@salvar')->middleware('checkAdministrador')->name('admin.user.store'); Route::post('/usuarios/salvar-novo', 'AdministradorController@salvar')->middleware('checkAdminResp')->name('admin.user.store');
Route::get('/usuarios/editar/{id}', 'AdministradorController@edit')->middleware('checkAdministrador')->name('admin.user.edit'); Route::get('/usuarios/editar/{id}', 'AdministradorController@edit')->middleware('checkAdminResp')->name('admin.user.edit');
Route::post('/usuarios/editar/atualizar/{id}', 'AdministradorController@update')->middleware('checkAdministrador')->name('admin.user.update'); Route::post('/usuarios/editar/atualizar/{id}', 'AdministradorController@update')->middleware('checkAdminResp')->name('admin.user.update');
Route::post('/usuarios/editar/deletar/{id}', 'AdministradorController@destroy')->middleware('checkAdministrador')->name('admin.user.destroy'); Route::post('/usuarios/editar/deletar/{id}', 'AdministradorController@destroy')->middleware('checkAdminResp')->name('admin.user.destroy');
Route::get('admin/editais', 'AdministradorController@editais')->middleware('checkAdministrador')->name('admin.editais'); Route::get('admin/editais', 'AdministradorController@editais')->middleware('checkAdministrador')->name('admin.editais');
// Rotas de administrador responsavel (Reitor ou pro-reitor) // Rotas de administrador responsavel (Reitor ou pro-reitor)
......
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