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;