Files
dojo/lib/Dojo/Controller/Users.pm
2020-07-11 08:35:55 +02:00

89 lines
2.3 KiB
Perl
Executable File

package Dojo::Controller::Users;
use Mojo::Base 'Mojolicious::Controller';
use Dojo::Support 'log';
use Email::Valid;
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){ #admin
$self->stash(template=>'users/logina') ;
$self->stash(layout=>"default");
}
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(template=>'users/loginu') ;
$self->stash(layout=>"defaultContact");
}
my $user = $self->param('uname') // '';
my $pass = $self->param('pass') //'';
return $self->render unless my $pmid = $self->dbg->check($user, $pass);
$self->session(expiration => 3600, user => $user, pmid=>$pmid, nick=> $self->param('nick'));
$self->redirect_to($self->session('prev')) ;
}
sub is_logged {
my $self = shift;
return 1 if $self->session('user');
$self->session(ureq=>1,prev=>$self->url_for);
$self->redirect_to('login');
}
sub is_admin {
my $self = shift;
return 1 if ( ($self->session('pmid') //0) == 4);
$self->session(ureq=>4,prev=>$self->url_for);
$self->redirect_to('login');
}
sub is_grulla {
my $self = shift;
return 1 if (($self->session('pmid')//0)>=2);
$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;
$self->session(expires => 1);
$self->redirect_to('home');
}
1;