85 lines
2.3 KiB
PHP
85 lines
2.3 KiB
PHP
<?php
|
|
class UserController extends Zend_Controller_Action
|
|
{
|
|
/**
|
|
* Gestion de l'authentification
|
|
*/
|
|
public function loginAction()
|
|
{
|
|
$this->view->headLink()->appendStylesheet('/themes/default/styles/signin.css', 'all');
|
|
$this->view->headTitle()->append('Connexion');
|
|
|
|
$form = new Application_Form_Login();
|
|
$this->view->form = $form;
|
|
$request = $this->getRequest();
|
|
if ( $request->isPost() ) {
|
|
$formData = $request->getPost ();
|
|
if ( $form->isValid($formData) ) {
|
|
$login = $form->getValue('login');
|
|
$pass = $form->getValue('pass');
|
|
$auth = Zend_Auth::getInstance();
|
|
$authAdapter = new Scores_Auth_Adapter_Ws($login, md5($login.'|'.$pass));
|
|
$result = $auth->authenticate($authAdapter);
|
|
if ( $result->isValid() ) {
|
|
$this->redirect('/');
|
|
} else {
|
|
$this->view->message = '';
|
|
foreach ($result->getMessages() as $message) {
|
|
$this->view->message.= $message."<br/>";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$this->_helper->layout()->disableLayout();
|
|
}
|
|
|
|
/**
|
|
* Gestion de la déconnexion
|
|
*/
|
|
public function logoutAction()
|
|
{
|
|
Zend_Auth::getInstance()->clearIdentity();
|
|
$this->_helper->layout()->disableLayout();
|
|
|
|
$request = $this->getRequest();
|
|
$message = $request->getParam('message');
|
|
$this->view->assign('message', $message);
|
|
|
|
$ajax = $request->getParam('ajax', 0);
|
|
$this->view->assign('ajax', $ajax);
|
|
|
|
$refresh = 5;
|
|
|
|
$url = 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$this->view->url(array(
|
|
'controller' => 'user',
|
|
'action' => 'login',
|
|
), null, true);
|
|
|
|
$this->view->assign('url', $url);
|
|
|
|
if (!$ajax) {
|
|
$this->view->assign('refresh', $refresh);
|
|
$this->view->headMeta()->appendHttpEquiv('refresh', $refresh.'; url='.$url);
|
|
}
|
|
}
|
|
/**
|
|
* Changer la langue de l'utilisateur
|
|
*/
|
|
public function langAction()
|
|
{
|
|
$this->_helper->layout()->disableLayout();
|
|
$this->_helper->viewRenderer->setNoRender(true);
|
|
|
|
$lang = $this->getRequest()->getParam('lang', null);
|
|
|
|
$auth = Zend_Auth::getInstance();
|
|
$identity = $auth->getIdentity();
|
|
|
|
$identity->langtmp = $lang;
|
|
|
|
$auth->getStorage()->write($identity);
|
|
}
|
|
|
|
}
|
|
|