88 lines
2.3 KiB
Perl
Executable File
88 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(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;
|