Unverified Commit 5af65369 authored by Aline Tenório's avatar Aline Tenório Committed by GitHub
Browse files

Merge pull request #24 from lmts-ufape/cadastroParticipante

Alterações no cadastro e email
parents faca512c 5dbc48d6
......@@ -12,6 +12,7 @@ use Illuminate\Validation\Rule;
use App\User;
use App\Participante;
use App\Proponente;
use App\Rules\UrlValidacao;
class RegisterController extends Controller
{
......@@ -54,30 +55,31 @@ class RegisterController extends Controller
protected function validator(array $data)
{
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'cpf' => ['required', 'cpf'],
'celular' => ['required','string'],
'instituicao' => ['required','string','max:255'],
'cpf' => ['required', 'cpf', 'unique:users'],
'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,linkLattes'],
'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')),
'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'],
'linkLattes'=> ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
'linkLattes' => Rule::requiredIf( (isset($data['cargo']) && $data['cargo'] !== 'Estudante') || (isset($data['cargo']) && $data['cargo'] === 'Estudante' && isset($data['vinculo']) && $data['vinculo'] === 'Pós-doutorando')),
'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':''],
]);
}
......@@ -89,54 +91,59 @@ class RegisterController extends Controller
*/
protected function create(array $data)
{
//dd($data);
//dd($data);
$user = new User();
$user->name = $data['name'];
$user->email = $data['email'];
$user->password = bcrypt($data['password']);
$user->cpf = $data['cpf'];
$user->celular = $data['celular'];
$user->instituicao = $data['instituicao'];
if ($data['instituicao'] != null) {
$user->instituicao = $data['instituicao'];
} else if (isset($data['instituicaoSelect']) && $data['instituicaoSelect'] != "Outra") {
$user->instituicao = $data['instituicaoSelect'];
}
if($data['cargo'] === "Estudante" && $data['vinculo'] !== "Pós-doutorando"){
if ($data['cargo'] === "Estudante" && $data['vinculo'] !== "Pós-doutorando") {
$user->tipo = 'participante';
$user->save();
$participante = new Participante();
$user->participantes()->save($participante);
}else{
} else {
$user->tipo = 'proponente';
$user->save();
$proponente = new Proponente();
if($data['SIAPE'] != null){
if ($data['SIAPE'] != null) {
$proponente->SIAPE = $data['SIAPE'];
}
$proponente->cargo = $data['cargo'];
if($data['vinculo'] != 'Outro'){
if ($data['vinculo'] != 'Outro') {
$proponente->vinculo = $data['vinculo'];
}else{
} else {
$proponente->vinculo = $data['outro'];
}
$proponente->titulacaoMaxima = $data['titulacaoMaxima'];
$proponente->anoTitulacao = $data['anoTitulacao'];
$proponente->areaFormacao = $data['areaFormacao'];
$proponente->areaFormacao = $data['areaFormacao'];
$proponente->bolsistaProdutividade = $data['bolsistaProdutividade'];
if($data['bolsistaProdutividade'] == 'sim'){
if ($data['bolsistaProdutividade'] == 'sim') {
$proponente->nivel = $data['nivel'];
}
$proponente->linkLattes = $data['linkLattes'];
$proponente->linkLattes = $data['linkLattes'];
$user->proponentes()->save($proponente);
}
return $user;
}
public function showRegistrationForm(){
public function showRegistrationForm()
{
return view('auth.register');
}
}
......@@ -37,8 +37,10 @@ class ProponenteController extends Controller
'bolsistaProdutividade'=> ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,linkLattes'],
'bolsistaProdutividade' => Rule::requiredIf( (isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
'nivel' => ['required_if:bolsistaProdutividade,sim'],
'nivel' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required':''],
'linkLattes'=> ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'],
'linkLattes' => Rule::requiredIf( (isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando')),
'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required':''],
'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes':''],
]);
if($request['cargo'] === "Estudante" && $request['vinculo'] !== "Pós-doutorando"){
......
......@@ -24,6 +24,7 @@ class AppServiceProvider extends ServiceProvider
*/
public function boot()
{
Validator::extend('cpf', '\App\Utils\CpfValidation@validate');
Validator::extend('cpf', '\App\Utils\CpfValidation@validate');
Validator::extend('link_lattes', '\App\Utils\LattesValidation@validate', 'Link inválido');
}
}
<?php namespace App\Utils;
class LattesValidation
{
public function validate($attribute, $value, $parameters, $validator)
{
return $this->isValidUrl($value);
}
function isValidUrl($url)
{
// first do some quick sanity checks:
if (!$url || !is_string($url)) {
return false;
}
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL)) {
return false;
}
if(parse_url($url)['host'] != 'buscatextual.cnpq.br' && parse_url($url)['host'] != 'lattes.cnpq.br'){
return false;
}
if($this->getHttpResponseCode_using_getheaders($url) != 200){
return false;
}
return true;
}
function getHttpResponseCode_using_getheaders($url, $followredirects = true)
{
if (!$url || !is_string($url)) {
return false;
}
$headers = @get_headers($url);
if ($headers && is_array($headers)) {
if ($followredirects) {
$headers = array_reverse($headers);
}
foreach ($headers as $hline) {
if (preg_match('/^HTTP\/\S+\s+([1-9][0-9][0-9])\s+.*/', $hline, $matches)) {
$code = $matches[1];
return $code;
}
}
return false;
}
return false;
}
}
\ No newline at end of file
......@@ -57,7 +57,7 @@ return [
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
'name' => env('MAIL_FROM_NAME', 'Submeta'),
],
/*
......
......@@ -43,14 +43,24 @@
<div class="form-group row">
<div class="col-md-8">
<label for="instituicao" class="col-form-label">{{ __('Instituição de Vínculo*') }}</label>
<input id="instituicao" type="text" class="form-control @error('instituicao') is-invalid @enderror" name="instituicao" value="{{ old('instituicao') }}" required autocomplete="instituicao" autofocus>
<input style="display: none;" id="instituicao" type="text" class="form-control @error('instituicao') is-invalid @enderror" name="instituicao" value="{{ old('instituicao') }}" placeholder="Digite o nome da Instituição" autocomplete="instituicao" autofocus>
<select style="display: inline" onchange="showInstituicao()" class="form-control @error('instituicaoSelect') is-invalid @enderror" name="instituicaoSelect" id="instituicaoSelect">
<option value="" disabled selected hidden>-- Instituição --</option>
<option value="UFAPE">Universidade Federal do Agreste de Pernambuco - UFAPE</option>
<option>Outra</option>
</select>
@error('instituicao')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@error('instituicaoSelect')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="col-md-4">
<label for="celular" class="col-form-label">{{ __('Celular*') }}</label>
<input id="celular" type="text" class="form-control @error('celular') is-invalid @enderror" name="celular" value="{{ old('celular') }}" required autocomplete="celular" autofocus>
......@@ -226,12 +236,12 @@
<div class="col-md-1" id="nivelInput" style="display: block;">
<label for="nivel" class="col-form-label">{{ __('Nível*') }}</label>
<select name="nivel" id="nivel" class="form-control @error('nivel') is-invalid @enderror">
<option value="" disabled selected hidden></option>
<option value="2">2</option>
<option value="1D">1D</option>
<option value="" disabled selected hidden></option>
<option value="1A">1A</option>
<option value="1B">1B</option>
<option value="1C">1C</option>
<option value="1A">1A</option>
<option value="1D">1D</option>
<option value="2">2</option>
</select>
@error('nivel')
<span class="invalid-feedback" role="alert">
......@@ -299,10 +309,6 @@
}
}
window.onload = mudarNivel();
window.onload = outroVinculo();
window.onload = mudar();
function mudarNivel() {
var bolsista = document.getElementById('bolsistaProdutividade');
var nivel = document.getElementById('nivelInput');
......@@ -313,5 +319,24 @@
nivel.style.display = "none";
}
}
function showInstituicao(){
var instituicao = document.getElementById('instituicao');
var instituicaoSelect = document.getElementById('instituicaoSelect');
if(instituicaoSelect.value === "Outra"){
instituicaoSelect.style.display = "none";
instituicao.style.display = "inline";
}
}
function onload(){
mudarNivel();
outroVinculo();
mudar();
showInstituicao();
}
window.onload = onload();
</script>
@endsection
\ No newline at end of file
......@@ -115,24 +115,25 @@
{{ __('Perfil Coordenador') }}
</a>
@endif
@if(Auth::user()->avaliadors != null)
<a class="dropdown-item" href="{{ route('avaliador.index') }}">
<img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt="">
{{ __('Perfil Avaliador') }}
</a>
@endif
@if(Auth::user()->proponentes != null)
<a class="dropdown-item" href="{{ route('proponente.index') }}">
<img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt="">
{{ __('Perfil Proponente') }}
</a>
@endif
@if(Auth::user()->participantes->where('user_id', Auth::user()->id)->count() != 0)
<a class="dropdown-item" href="{{ route('participante.index') }}">
<img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt="">
{{ __('Perfil Participante') }}
</a>
@endif
@if(Auth::user()->avaliadors != null)
<a class="dropdown-item" href="{{ route('avaliador.index') }}">
<img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt="">
{{ __('Perfil Avaliador') }}
</a>
@endif
@if(Auth::user()->proponentes != null)
<a class="dropdown-item" href="{{ route('proponente.index') }}">
<img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt="">
{{ __('Perfil Proponente') }}
</a>
@endif
@if(Auth::user()->participantes->where('user_id', Auth::user()->id)->count() != 0)
<a class="dropdown-item" href="{{ route('participante.index') }}">
<img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt="">
{{ __('Perfil Participante') }}
</a>
@endif
<a class="dropdown-item" href="{{ route('logout') }}"
onclick="event.preventDefault();
......
......@@ -154,11 +154,11 @@
<label for="nivel" class="col-form-label">{{ __('Nível*') }}</label>
<select name="nivel" id="nivel" class="form-control @error('nivel') is-invalid @enderror">
<option value="" disabled selected hidden></option>
<option value="2">2</option>
<option value="1D">1D</option>
<option value="1A">1A</option>
<option value="1B">1B</option>
<option value="1C">1C</option>
<option value="1A">1A</option>
<option value="1D">1D</option>
<option value="2">2</option>
</select>
@error('nivel')
<span class="invalid-feedback" role="alert">
......@@ -235,11 +235,14 @@
nivel.style.display = "block";
} else {
nivel.style.display = "none";
}
console.log("a");
}
}
function onload(){
mudarNivel();
outroVinculo();
}
window.onload = mudarNivel();
window.onload = outroVinculo();
window.onload = onload();
</script>
@endsection
\ No newline at end of file
......@@ -44,7 +44,7 @@
{{ $salutation }}
@else
@lang('Atenciosamente'),<br>
{{ config('app.name') }}
Equipe do {{ config('app.name') }}
@endif
{{-- Subcopy --}}
......
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