--- /dev/null
+<?php
+
+class SessionController extends ApplicationController {
+
+ const IS_LOGGUED = 'is_loggued';
+
+ public function verifIsLoggued() {
+ return true;
+ }
+
+ /**
+ * @api {post} /index.php?action=session_login Login
+ * @apiDescription Permet de se logger au serveur. Le serveur renvoie un cookie permettant l'identification
+ * @apiGroup Session
+ * @apiVersion 1.0.0
+ * @apiParam {String} login login de l'utilisateur
+ * @apiParam {String} password mot de passe de l'utilisateur
+ *
+ * @apiSuccessExample {json} Success-Reponse:
+ * {"retour":"OK","message":"","result":{"login":"admin","is_loggued":true}}
+ */
+ public function loginAction(){
+ $login = $this->getPostParameters()->get('login');
+ $password = $this->getPostParameters()->get('password');
+
+ // ATTEMPTING LDAP LOGIN HERE
+ $ldap_connexion = $this->getLdapWrapper()->login($login, $password);
+
+ // IF NOT SUCCESSFUL, SWITCH TO CLASSIC LOGIN
+ if(!$ldap_connexion) {
+ $pdoAdministratorManager = new PdoAdministratorManager();
+ if (! $pdoAdministratorManager->checkPassword($login,$password)) {
+ throw new Exception("Mauvais login ou mot de passe");
+ }
+ }
+ $this->login($login);
+ return $this->infoAction();
+ }
+
+ /**
+ * @api {get} /index.php?action=session_logout Logout
+ * @apiDescription Permet de se dé-logguer
+ * @apiGroup Session
+ * @apiVersion 1.0.0
+ *
+ * @apiSuccessExample {json} Success-Reponse:
+ * {"retour":"OK","message":"","result":{"login":false,"is_loggued":false}}
+ */
+ public function logoutAction(){
+ $this->destroySession();
+ return $this->infoAction();
+ }
+
+ /**
+ * @api {get} /index.php?action=session_info Information de connexion
+ * @apiDescription Permet de savoir sous quel compte on est connecté
+ * @apiGroup Session
+ * @apiVersion 1.0.0
+ *
+ * @apiSuccessExample {json} Success-Reponse:
+ * {"retour":"OK","message":"","result":{"login":false,"is_loggued":false}}
+ */
+ public function infoAction(){
+ $result['login'] = $this->getFromSession('login');
+ $result[self::IS_LOGGUED] = $this->getFromSession(self::IS_LOGGUED);
+ return $result;
+ }
+}
\ No newline at end of file