Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Walter Felipe
submeta
Commits
b7795ae9
"app/Http/vscode:/vscode.git/clone" did not exist on "e119449ac5f16c73afe570e9bd7ca98e55d45401"
Commit
b7795ae9
authored
Jun 12, 2020
by
alinetenorio
Browse files
validação link do Lattes
parent
e58d128b
Changes
3
Hide whitespace changes
Inline
Side-by-side
app/Http/Controllers/Auth/RegisterController.php
View file @
b7795ae9
...
...
@@ -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,31 +55,29 @@ 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_if:instituicaoSelect,Outra'
,
'max:255'
],
'instituicaoSelect'
=>
[
'required_without:instituicao'
],
'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'
)
)
,
'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'
:
''
,
'link_lattes'
]
,
]);
}
...
...
@@ -90,58 +89,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'
];
if
(
$data
[
'instituicao'
]
!=
null
){
if
(
$data
[
'instituicao'
]
!=
null
)
{
$user
->
instituicao
=
$data
[
'instituicao'
];
}
else
if
(
isset
(
$data
[
'instituicaoSelect'
])
&&
$data
[
'instituicaoSelect'
]
!=
"Outra"
){
}
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'
);
}
}
app/Providers/AppServiceProvider.php
View file @
b7795ae9
...
...
@@ -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'
);
}
}
app/Utils/LattesValidation.php
0 → 100644
View file @
b7795ae9
<?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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment