alta usuarios
This commit is contained in:
@@ -1,23 +1,47 @@
|
||||
package Dojo::Controller::Users;
|
||||
use Mojo::Base 'Mojolicious::Controller';
|
||||
use Dojo::Support qw{ merge_hash load_module };
|
||||
use Dojo::Support 'log';
|
||||
use Email::Valid;
|
||||
|
||||
|
||||
sub login {
|
||||
sub reg{
|
||||
my $self=shift;
|
||||
my $switch=0;
|
||||
if ($self->param('request')){
|
||||
# 1=ok, 2=possible spam (simulate ok) 0=failed
|
||||
$switch = $self->dbg->createu(
|
||||
$self->param('user'),
|
||||
$self->param('uname'),
|
||||
$self->param('tel'),
|
||||
$self->param('mail'),
|
||||
$self->param('pass'),
|
||||
$self->param('passchk')
|
||||
)}
|
||||
$self->redirect_to("/login")
|
||||
unless $switch==0;
|
||||
$self->stash(layout=>"default");
|
||||
}
|
||||
|
||||
|
||||
sub login {
|
||||
my $self = shift;
|
||||
#falta si el usuario ya está registrado y llama a login.
|
||||
if (($self->session('ureq')//0) == 4){
|
||||
$self->stash( css=>["users/login/cssaForm.css"]);
|
||||
if (($self->session('ureq')//0) == 4){ #admin
|
||||
$self->stash(template=>'users/logina') ;
|
||||
$self->stash(layout=>"default");
|
||||
}
|
||||
elsif (($self->session('ureq')//0) == 2){
|
||||
$self->stash( css=>["users/login/cssuForm.css"]);
|
||||
$self->stash(template=>'users/loginu') ;
|
||||
elsif (($self->session('ureq')//0) == 1){ #invitado
|
||||
$self->stash(template=>'users/logini') ;
|
||||
$self->stash(layout=>"defaultContact");
|
||||
}
|
||||
elsif (($self->session('ureq')//0) == 2){ #usuario
|
||||
$self->session('tmpreq')//0 == 1?
|
||||
$self->stash(template=>'users/logint'): #temporal (grullas)
|
||||
$self->stash(template=>'users/loginu'); #registrado
|
||||
$self->stash(layout=>"defaultContact");
|
||||
}
|
||||
else{
|
||||
$self->stash( css=>["users/login/cssForm.css"]);
|
||||
$self->stash(template=>'users/loginu') ;
|
||||
$self->stash(layout=>"defaultContact");
|
||||
}
|
||||
my $user = $self->param('uname') // '';
|
||||
@@ -42,9 +66,15 @@ sub is_admin {
|
||||
sub is_grulla {
|
||||
my $self = shift;
|
||||
return 1 if (($self->session('pmid')//0)>=2);
|
||||
$self->session(ureq=>2,prev=>$self->url_for);
|
||||
$self->session(ureq=>2,tmpreq=>0,prev=>$self->url_for);
|
||||
$self->redirect_to('login');
|
||||
}
|
||||
sub is_grulla_tmp{
|
||||
my $self = shift;
|
||||
return 1 if (($self->session('pmid')//0)>=2);
|
||||
$self->session(ureq=>2,tmpreq=>1,prev=>$self->url_for);
|
||||
$self->redirect_to('login');
|
||||
}
|
||||
|
||||
sub logout {
|
||||
my $self = shift;
|
||||
|
||||
@@ -9,19 +9,44 @@ use Dojo::Conf;
|
||||
|
||||
|
||||
sub new { bless {}, shift }
|
||||
|
||||
sub grulla_pass{
|
||||
return
|
||||
_read( "select pass as gpass from usuario where nombre like 'grullas'")->[0]
|
||||
};
|
||||
sub ugrulla_pass{
|
||||
my($c,$p)=@_;
|
||||
_write("update usuario set pass= ? where nombre like 'grullas'",$p);
|
||||
sub createu{
|
||||
my ($c,$user,$uname,$tel,$mail,$pass,$passchk)=@_;
|
||||
my $ttel= $tel =~m/^$/ ? "0000000000" : $tel;
|
||||
$ttel =~ s/[^\+0-9]//g;
|
||||
if(
|
||||
$ttel =~m/\+?[0-9]{10,}/ &&
|
||||
Email::Valid->address($mail) &&
|
||||
$user =~m/[a-zA-Z]{3,25}/ &&
|
||||
$user !~m/\s/ && #mejora este
|
||||
$uname =~m/[a-zA-Z]{3,50}/ &&
|
||||
($pass eq $passchk)
|
||||
){
|
||||
if(
|
||||
$user =~m/\s|sex|http|webpage/ &&
|
||||
$uname =~m/sex|http|webpage/
|
||||
){ return 2} #possible spam
|
||||
# $ttel = $tel =~m/^$/? "null";
|
||||
if ( _write(
|
||||
"insert into usuario (usuario,nombre,telefono,correo,pass,permiso_id,ultima)
|
||||
values (?,?,?,?,?,2,now())",
|
||||
$user,$uname,$ttel,$mail,$pass) == 0){return 0;}
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub grulla_pass{
|
||||
return
|
||||
_read( "select pass as gpass from usuario where usuario like 'grullas'")->[0]
|
||||
};
|
||||
sub ugrulla_pass{
|
||||
my($c,$p)=@_;
|
||||
_write("update usuario set pass= ? where usuario like 'grullas'",$p);
|
||||
}
|
||||
|
||||
sub check {
|
||||
my ($self, $user, $pass) = @_;
|
||||
my $q="select permiso_id as pid from usuario where nombre = ? and pass=? ";
|
||||
my $q="select permiso_id as pid from usuario where usuario = ? and pass=? ";
|
||||
# | 0 | bloqueado |
|
||||
# | 1 | invitado |
|
||||
# | 2 | usuario |
|
||||
|
||||
Reference in New Issue
Block a user