Correction nom de repo+module 'users' > 'user'. Correction token local plus utile (car même session php/js)

This commit is contained in:
xdrm-brackets 2016-04-14 12:45:54 +02:00
parent d6eef611b4
commit fae96b0fe5
7 changed files with 87 additions and 18 deletions

View File

@ -1,6 +1,6 @@
{ {
"users": { "user": {
"login": { "login": {
"description": "Connexion avec un login (identifiant ou adresse mail) et un mot de passe.", "description": "Connexion avec un login (identifiant ou adresse mail) et un mot de passe.",
"permissions": [], "permissions": [],
@ -14,6 +14,13 @@
"description": "Deconnexion", "description": "Deconnexion",
"permissions": [], "permissions": [],
"parameters": {} "parameters": {}
},
"getById": {
"description": "Retourne les informations d'un utilisateur d'id donne.",
"permissions": ["admin"],
"parameters": { "id_user" : "id" }
} }
}, },

View File

@ -1,7 +1,11 @@
{ {
"users": [ "user": [
"login" "login",
"getById",
"getAll",
"create",
"remove"
], ],
"Personnes": [ "Personnes": [

View File

@ -40,7 +40,7 @@
// Si les parametres de connection, on essaie de connecter // Si les parametres de connection, on essaie de connecter
if( $login_vars ){ if( $login_vars ){
$login = new ModuleRequest('users/login', array( 'login' => $_POST['login'], 'password' => $_POST['password'] )); $login = new ModuleRequest('user/login', array( 'login' => $_POST['login'], 'password' => $_POST['password'] ));
$login_ans = $login->dispatch(); $login_ans = $login->dispatch();
// Si aucune erreur, on dit qu'on vient de se connecter // Si aucune erreur, on dit qu'on vient de se connecter
@ -56,7 +56,7 @@
// Si on se deconnecte // Si on se deconnecte
if( $logout_vars ){ if( $logout_vars ){
$logout = new ModuleRequest('users/logout'); $logout = new ModuleRequest('user/logout');
$logout_ans = $logout->dispatch(); $logout_ans = $logout->dispatch();
// Si aucune erreur, on dit qu'on vient de se deconnecter // Si aucune erreur, on dit qu'on vient de se deconnecter

View File

@ -194,6 +194,7 @@
=========================================================*/ =========================================================*/
// Si variable n'existe pas, on cree un tableau vide // Si variable n'existe pas, on cree un tableau vide
$params = $post; $params = $post;
// On retire le @path de @params // On retire le @path de @params
unset($params['path']); unset($params['path']);

View File

@ -6,7 +6,7 @@
use \manager\ManagerError; use \manager\ManagerError;
use \manager\Repo; use \manager\Repo;
class users{ class user{
/* VERIFICATION DES LOGINS D'UN UTILISATEUR /* VERIFICATION DES LOGINS D'UN UTILISATEUR
@ -20,7 +20,7 @@
public static function login($login, $password){ public static function login($login, $password){
/* [1] On verifie les logins /* [1] On verifie les logins
=========================================================*/ =========================================================*/
$check = new Repo('users/login', array($login, $password)); $check = new Repo('user/login', array($login, $password));
$user = $check->answer(); $user = $check->answer();
// Si le login/password est incorrect, on retourne une erreur // Si le login/password est incorrect, on retourne une erreur
@ -54,13 +54,44 @@
$_SESSION['permission'] = array(); $_SESSION['permission'] = array();
} }
/* RETOURNE L'UTILISATEUR D'ID DONNE
*
* @id_user<int> UID de l'utilisateur en question
*
* @return user<Array> Tableau contenant les informations de l'utilisateur
*
*/
public static function getById($user_id){
/* [1] On recupere les donnees de l'utilisateur
=========================================================*/
$getUser = new Repo('user/getById', array($user_id));
$user_data = $getUser->answer();
// Si aucun utilisateur n'est trouve
if( $user_data === false ) return array('ModuleError' => ManagerError::ModuleError);
/* [2] On met les permissions au bon format (string -> array)
=========================================================*/
$user_data['permission'] = explode( ',', str_replace(' ', '', $user_data['permission']) );
/* [3] Gestion du retour
=========================================================*/
return array(
'ModuleError' => ManagerError::Success,
'user' => $user_data
);
}
// [x] "login", // [x] "login",
// [x] "logout", // [x] "logout",
// [ ] "getById", // [x] "getById",
// [ ] "getAll", // [ ] "getAll",
// [ ] "create", // [ ] "create",
// [ ] "edit",
// [ ] "remove", // [ ] "remove",
} }

View File

@ -85,12 +85,7 @@
if( !Database::check('sha1', $token) ) return false; if( !Database::check('sha1', $token) ) return false;
/* [1] Verification du token local /* [1] Verification dans la base de donnees
=========================================================*/
if( substr($_SESSION['session_token'], 0, 40) == $token ) return true;
/* [2] Verification dans la base de donnees
=========================================================*/ =========================================================*/
$check = Database::getPDO()->prepare("SELECT id_token, permission $check = Database::getPDO()->prepare("SELECT id_token, permission
FROM api_token FROM api_token
@ -104,7 +99,7 @@
if( $token_info === false ) return false; if( $token_info === false ) return false;
/* [3] On retourne le resultat (les permissions du token) /* [2] On retourne le resultat (les permissions du token)
=========================================================*/ =========================================================*/
return explode( ',', str_replace(' ', '', $token_info['permission']) ); return explode( ',', str_replace(' ', '', $token_info['permission']) );
} }

View File

@ -3,7 +3,7 @@
namespace manager\repo; namespace manager\repo;
use \manager\Database; use \manager\Database;
class users{ class user{
/* VERIFICATION DU LOGIN/PASSWORD D'UN UTILISATEUR /* VERIFICATION DU LOGIN/PASSWORD D'UN UTILISATEUR
@ -43,10 +43,41 @@
// On retourne le resultat // On retourne le resultat
return $result; return Database::delNumeric( $result );
} }
/* RETOURNE LES DONNEES D'UN UTILISATEUR D'ID DONNE
*
* @id_user<int> UID de l'utilisateur en question
*
* @return user<Array> Tableau contenant les donnees de l'utilisateur s'il existe sinon retourne FALSE
*
*/
public static function getById($id_user){
/* [1] On effectue la requete
=========================================================*/
$getUser = Database::getPDO()->prepare("SELECT id_user, login, mail, permission
FROM users
WHERE id_user = :id_user");
$getUser->execute(array( ':id_user' => $id_user ));
/* [2] On recupere le resultat de la requete
=========================================================*/
$userData = $getUser->fetch();
// Si l'utilisateur n'existe pas, on retourne FALSE
if( $userData === false ) return false;
/* [3] Gestion du retour
=========================================================*/
return Database::delNumeric( $userData );
}
} }