private function makeLogin($user, $pass) { $OU = UsuarisPeer::getUserLogin($user, $pass, null); $OK = false; if ($OU instanceof Usuaris) { $this->getUser()->setAuthenticated(true); $this->getUser()->setSessionPar('idU', $OU->getUsuariid()); $this->getUser()->setSessionPar('username', $OU->getNomComplet()); $this->getUser()->setSessionPar('compres', array()); $OK = true; } else { $this->getUser()->setAuthenticated(false); $this->getUser()->setSessionPar('idU', 0); $this->getUser()->setSessionPar('username', ''); $this->getUser()->setSessionPar('compres', array()); $OK = false; } return $OK; }
/** * Executem el login del modul administrador **/ public function executeULogin(sfWebRequest $request) { $this->setLayout('gestio'); $this->accio = $request->getParameter('accio', ''); $this->IDS = $this->getUser()->ParReqSesForm($request, 'idS', 1); //Per defecte entro al IDS = 1 que és la Casa de Cultura de Girona. $this->FLogin = new LoginForm(array('site' => $this->IDS, 'nick' => "", 'password' => '')); $this->ERROR = ""; $this->FB = myUser::f_FbAuth(false, $this->getController()->genUrl('@fb_login', true)); //Retorna l'usuari que s'ha autentificat amb facebook if ($request->hasParameter('BLOGIN')) { $this->accio = "LOGIN"; } if ($request->hasParameter('BNEWUSER')) { $this->accio = "NEW_USER"; } if ($request->hasParameter('BSAVENEWUSER')) { $this->accio = "SAVE_NEW_USER"; } if ($request->hasParameter('BREMEMBER')) { $this->accio = "REMEMBER"; } switch ($this->accio) { case 'LOGOUT': $this->getUser()->setSessionPar('idU', 0); $this->getUser()->setSessionPar('idS', 0); $this->getUser()->setSessionPar('idN', NivellsPeer::CAP); $this->getUser()->setAuthenticated(false); $this->getUser()->clearCredentials(); $this->redirect('gestio/uLogin'); break; //Fem un login via facebook //Fem un login via facebook case 'FB_LOGIN': $FB = myUser::f_FbAuth(false); $USUARI = UsuarisPeer::getUserFromFacebook($FB['user']['id']); if ($USUARI instanceof Usuaris) { $this->getUser()->setSessionPar('idS', $this->IDS); $this->makeLogin($USUARI, $this->IDS); } else { $this->getUser()->addLogAction('error', 'fb_login', $FB); $this->ERROR = "No s'ha trobat cap usuari vinculat amb el seu compte de facebook.<br />Per vincular-lo ha d'accedir i fer-ho des del seu administrador o bé crear un compte nou."; } break; //Fem un LOGIN //Fem un LOGIN case 'LOGIN': $L = $request->getParameter('login'); $this->FLogin->bind($L); if ($this->FLogin->isValid()) { //Consultem l'usuari. Només miraré els permisos si és un "administrador" $USUARI = UsuarisPeer::getUserLogin($L['nick'], $L['password'], null); if ($USUARI instanceof Usuaris) { $this->IDS = $L['site']; if (is_numeric($this->IDS)) { $_SESSION[$USUARI->getNomComplet()] = $USUARI->getNomComplet(); $this->getUser()->setSessionPar('idS', $this->IDS); $this->makeLogin($USUARI, $this->IDS); } else { $this->getUser()->addLogAction('error', 'login', $L); $this->ERROR = "Hi ha hagut algun problema amb el SITE.<br />Contacti amb la Casa de Cultura si us plau."; } } else { $this->getUser()->addLogAction('error', 'login', $L); $this->ERROR = "L'usuari o la contrasenya són incorrectes"; } } else { $this->getUser()->addLogAction('error', 'login', $L); $this->ERROR = "El DNI o la contrasenya són incorrectes"; } break; //Creem un nou usuari //Creem un nou usuari case 'NEW_USER': $this->FUSUARI = UsuarisPeer::initialize(0, $this->IDS, false, true); break; case 'SAVE_NEW_USER': $PR = $request->getParameter('usuaris'); $this->FUSUARI = UsuarisPeer::initialize(0, $this->IDS, false, true); $this->FUSUARI->bind($PR); if ($this->FUSUARI->isValid()) { $this->FUSUARI->save(); $OU = $this->FUSUARI->getObject(); UsuarisPeer::addSite($OU->getUsuariId(), $this->IDS); $this->makeLogin($OU, $this->IDS); } else { $this->MISSATGE = array('Hi ha hagut algun problema enviant la sol·licitud.'); } break; //Si fem um remember de contrassenya //Si fem um remember de contrassenya case 'REMEMBER': $this->redirect('gestio/uRemember'); break; default: if ($this->getUser()->isAuthenticated() && $this->getUser()->getSessionPar('idU') > 0) { $USUARI = UsuarisPeer::retrieveByPK($this->getUser()->getSessionPar('idU')); $this->makeLogin($USUARI, $this->IDS); } } }
public function executeLogin(sfWebRequest $request) { $this->setLayout('hospici'); $this->setTemplate('index'); $OU = UsuarisPeer::getUserLogin($request->getParameter('login'), $request->getParameter('pass'), null); if ($OU instanceof Usuaris) { $this->getUser()->setAuthenticated(true); $this->getUser()->setSessionPar('idU', $OU->getUsuariid()); $this->getUser()->setSessionPar('username', $OU->getNomComplet()); $this->getUser()->setSessionPar('compres', array()); $this->redirect('@hospici_usuaris'); } else { $this->getUser()->setAuthenticated(false); $this->getUser()->setSessionPar('idU', 0); $this->getUser()->setSessionPar('username', ''); $this->getUser()->setSessionPar('compres', array()); $this->redirect('@hospici_cercador_activitats'); } }