Migrated admin methods from 'authenticationDefault' to new 'adminDefault' module
This commit is contained in:
parent
088683d2bf
commit
4213d8b132
|
@ -0,0 +1,211 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace api\module;
|
||||||
|
use \database\core\Repo;
|
||||||
|
use \error\core\Error;
|
||||||
|
use \error\core\Err;
|
||||||
|
|
||||||
|
class adminDefault{
|
||||||
|
|
||||||
|
public function __construct(){
|
||||||
|
// Routine to execute before each call to authenticationDefault's method
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __destruct(){
|
||||||
|
// Routine to execute after each call to authenticationDefault's method
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* RETOURNE LA LISTE DSE ADMINISTRATEURS DE L'ENTREPOT
|
||||||
|
*
|
||||||
|
* @return admins<array> Liste des administrateurs de l'entrepôt
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function getAll($params){
|
||||||
|
/* (1) Fetch admin list
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
/* (1) Prepare request */
|
||||||
|
$listRq = new Repo('admin/getByIdWarehouse', [ $_SESSION['WAREHOUSE']['id'] ]);
|
||||||
|
|
||||||
|
/* (2) Get response */
|
||||||
|
$listRs = $listRq->answer();
|
||||||
|
|
||||||
|
/* (3) Manage error */
|
||||||
|
if( !is_array($listRs) )
|
||||||
|
return ['error' => new Error(Err::RepoError)];
|
||||||
|
|
||||||
|
|
||||||
|
/* (2) Setup data (remove self)
|
||||||
|
---------------------------------------------------------*/
|
||||||
|
return ['admins' => $listRs];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* MODIFICATION MOT DE PASSE ADMINISTRATEUR
|
||||||
|
*
|
||||||
|
* @old<String> Ancien mot de passe (actuel)
|
||||||
|
* @new<String> Nouveau mot de passe
|
||||||
|
* @confirm<String> Confirmation mot de passe
|
||||||
|
*
|
||||||
|
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function update($params){
|
||||||
|
extract($params);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [1] On vérifie la confirmation de mot de passe
|
||||||
|
=========================================================*/
|
||||||
|
if( $new !== $confirm )
|
||||||
|
return [ 'error' => new Error(Err::WrongParam, 'confirm') ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] On vérifie le mot de passe actuel
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On hash le mot de passe actuel */
|
||||||
|
$hash_old = secure_hash($old, $_SESSION['ADMIN']['username']);
|
||||||
|
|
||||||
|
/* (2) On vérifie que le mot de passe est correct */
|
||||||
|
$checkPassword = new Repo('admin/getById', [
|
||||||
|
$_SESSION['WAREHOUSE']['id'],
|
||||||
|
$_SESSION['ADMIN']['id']
|
||||||
|
]);
|
||||||
|
|
||||||
|
$adminFetched = $checkPassword->answer();
|
||||||
|
|
||||||
|
// Si aucun résultat -> erreur
|
||||||
|
if( $adminFetched === false )
|
||||||
|
return [ 'error' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On vérifie le mot de passe actuel
|
||||||
|
=========================================================*/
|
||||||
|
// Si mot de passe faux, on retourne une erreur
|
||||||
|
if( $adminFetched['password'] != $hash_old )
|
||||||
|
return [ 'error' => new Error(Err::WrongParam, 'old') ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On met à jour le mot de passe
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On hash le nouveau mot de passe */
|
||||||
|
$hash_new = secure_hash($new, $adminFetched['username']);
|
||||||
|
|
||||||
|
/* (w) Requête */
|
||||||
|
$update = new Repo('admin/edit', [
|
||||||
|
$adminFetched['id_admin'],
|
||||||
|
$adminFetched['username'],
|
||||||
|
$adminFetched['mail'],
|
||||||
|
$hash_new
|
||||||
|
]);
|
||||||
|
|
||||||
|
/* (3) Gestion erreur */
|
||||||
|
if( !$update->answer() )
|
||||||
|
return [ 'error' => new Error(Err::RepoError) ];
|
||||||
|
|
||||||
|
/* (4) Succès si tout ok */
|
||||||
|
return [ 'error' => new Error(Err::Success) ];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* CREATION D'UN NOUVEAL ADMINISTRATEUR
|
||||||
|
*
|
||||||
|
* @username<String> Identifiant du nouvel administrateur
|
||||||
|
*
|
||||||
|
* @return password<String> Mot de passe généré
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function create($params){
|
||||||
|
extract($params);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [1] On génère un mot de passe
|
||||||
|
=========================================================*/
|
||||||
|
$password = secure_hash(uniqid(), uniqid());
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] On vérifie l'unicité de l'identifiant
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On vérifie que l'identifiant n'existe pas */
|
||||||
|
$checkPassword = new Repo('admin/getByUsername', [
|
||||||
|
$_SESSION['WAREHOUSE']['id'],
|
||||||
|
$username
|
||||||
|
]);
|
||||||
|
|
||||||
|
$adminFetched = $checkPassword->answer();
|
||||||
|
|
||||||
|
// Si un résultat -> erreur
|
||||||
|
if( $adminFetched !== false )
|
||||||
|
return [ 'error' => new Error(Err::AlreadyExists, 'username') ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On crée l'administrateur
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) Requête */
|
||||||
|
$create = new Repo('admin/create', [
|
||||||
|
$_SESSION['WAREHOUSE']['id'],
|
||||||
|
$username,
|
||||||
|
$mail,
|
||||||
|
$password
|
||||||
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (3) Gestion erreur */
|
||||||
|
if( !$create->answer() )
|
||||||
|
return [ 'error' => new Error(Err::RepoError) ];
|
||||||
|
|
||||||
|
/* (4) Succès si tout ok */
|
||||||
|
return [ 'password' => $password ];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* SUPPRESSION D'UN ADMINISTRATEUR DU MEME ENTREPOT
|
||||||
|
*
|
||||||
|
* @id_admin<int> UID de l'administrateur
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function delete($params){
|
||||||
|
extract($params);
|
||||||
|
|
||||||
|
/* [1] On vérifie que ce n'est pas nous-même
|
||||||
|
=========================================================*/
|
||||||
|
if( $id_admin == $_SESSION['ADMIN']['id'] )
|
||||||
|
return ['error' => new Error(Err::NoMatchFound) ];
|
||||||
|
|
||||||
|
|
||||||
|
/* [2] On essaie de supprimer
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On vérifie que l'identifiant n'existe pas */
|
||||||
|
$del_req = new Repo('admin/delete', [
|
||||||
|
$_SESSION['WAREHOUSE']['id'],
|
||||||
|
$id_admin
|
||||||
|
]);
|
||||||
|
|
||||||
|
/* (2) Gestion erreur */
|
||||||
|
if( !$del_req->answer() )
|
||||||
|
return [ 'error' => new Error(Err::RepoError) ];
|
||||||
|
|
||||||
|
/* (4) Succès si tout ok */
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
|
@ -121,116 +121,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RETOURNE LA LISTE DSE ADMINISTRATEURS DE L'ENTREPOT
|
|
||||||
*
|
|
||||||
* @return admins<array> Liste des administrateurs de l'entrepôt
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function get_admins($params){
|
|
||||||
/* (1) Fetch admin list
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
/* (1) Prepare request */
|
|
||||||
$listRq = new Repo('admin/getByIdWarehouse', [ $_SESSION['WAREHOUSE']['id'] ]);
|
|
||||||
|
|
||||||
/* (2) Get response */
|
|
||||||
$listRs = $listRq->answer();
|
|
||||||
|
|
||||||
/* (3) Manage error */
|
|
||||||
if( !is_array($listRs) )
|
|
||||||
return ['error' => new Error(Err::RepoError)];
|
|
||||||
|
|
||||||
|
|
||||||
/* (2) Setup data (remove self)
|
|
||||||
---------------------------------------------------------*/
|
|
||||||
return ['admins' => $listRs];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* MODIFICATION MOT DE PASSE ADMINISTRATEUR
|
|
||||||
*
|
|
||||||
* @old<String> Ancien mot de passe (actuel)
|
|
||||||
* @new<String> Nouveau mot de passe
|
|
||||||
* @confirm<String> Confirmation mot de passe
|
|
||||||
*
|
|
||||||
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function update_admin($params){
|
|
||||||
extract($params);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [1] On vérifie la confirmation de mot de passe
|
|
||||||
=========================================================*/
|
|
||||||
if( $new !== $confirm )
|
|
||||||
return [ 'error' => new Error(Err::WrongParam, 'confirm') ];
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On vérifie le mot de passe actuel
|
|
||||||
=========================================================*/
|
|
||||||
/* (1) On hash le mot de passe actuel */
|
|
||||||
$hash_old = secure_hash($old, $_SESSION['ADMIN']['username']);
|
|
||||||
|
|
||||||
/* (2) On vérifie que le mot de passe est correct */
|
|
||||||
$checkPassword = new Repo('admin/getById', [
|
|
||||||
$_SESSION['WAREHOUSE']['id'],
|
|
||||||
$_SESSION['ADMIN']['id']
|
|
||||||
]);
|
|
||||||
|
|
||||||
$adminFetched = $checkPassword->answer();
|
|
||||||
|
|
||||||
// Si aucun résultat -> erreur
|
|
||||||
if( $adminFetched === false )
|
|
||||||
return [ 'error' => new Error(Err::NoMatchFound) ];
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] On vérifie le mot de passe actuel
|
|
||||||
=========================================================*/
|
|
||||||
// Si mot de passe faux, on retourne une erreur
|
|
||||||
if( $adminFetched['password'] != $hash_old )
|
|
||||||
return [ 'error' => new Error(Err::WrongParam, 'old') ];
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] On met à jour le mot de passe
|
|
||||||
=========================================================*/
|
|
||||||
/* (1) On hash le nouveau mot de passe */
|
|
||||||
$hash_new = secure_hash($new, $adminFetched['username']);
|
|
||||||
|
|
||||||
/* (w) Requête */
|
|
||||||
$update = new Repo('admin/edit', [
|
|
||||||
$adminFetched['id_admin'],
|
|
||||||
$adminFetched['username'],
|
|
||||||
$adminFetched['mail'],
|
|
||||||
$hash_new
|
|
||||||
]);
|
|
||||||
|
|
||||||
/* (3) Gestion erreur */
|
|
||||||
if( !$update->answer() )
|
|
||||||
return [ 'error' => new Error(Err::RepoError) ];
|
|
||||||
|
|
||||||
/* (4) Succès si tout ok */
|
|
||||||
return [ 'error' => new Error(Err::Success) ];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* MODIFICATION CODE D'ACCES ENTREPOT
|
/* MODIFICATION CODE D'ACCES ENTREPOT
|
||||||
*
|
*
|
||||||
* @old<String> Ancien code d'accès (actuel)
|
* @old<String> Ancien code d'accès (actuel)
|
||||||
|
@ -296,69 +186,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* CREATION D'UN NOUVEAL ADMINISTRATEUR
|
|
||||||
*
|
|
||||||
* @username<String> Identifiant du nouvel administrateur
|
|
||||||
*
|
|
||||||
* @return password<String> Mot de passe généré
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function create_admin($params){
|
|
||||||
extract($params);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [1] On génère un mot de passe
|
|
||||||
=========================================================*/
|
|
||||||
$password = secure_hash(uniqid(), uniqid());
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On vérifie l'unicité de l'identifiant
|
|
||||||
=========================================================*/
|
|
||||||
/* (1) On vérifie que l'identifiant n'existe pas */
|
|
||||||
$checkPassword = new Repo('admin/getByUsername', [
|
|
||||||
$_SESSION['WAREHOUSE']['id'],
|
|
||||||
$username
|
|
||||||
]);
|
|
||||||
|
|
||||||
$adminFetched = $checkPassword->answer();
|
|
||||||
|
|
||||||
// Si un résultat -> erreur
|
|
||||||
if( $adminFetched !== false )
|
|
||||||
return [ 'error' => new Error(Err::AlreadyExists, 'username') ];
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] On crée l'administrateur
|
|
||||||
=========================================================*/
|
|
||||||
/* (1) Requête */
|
|
||||||
$create = new Repo('admin/create', [
|
|
||||||
$_SESSION['WAREHOUSE']['id'],
|
|
||||||
$username,
|
|
||||||
$mail,
|
|
||||||
$password
|
|
||||||
]);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* (3) Gestion erreur */
|
|
||||||
if( !$create->answer() )
|
|
||||||
return [ 'error' => new Error(Err::RepoError) ];
|
|
||||||
|
|
||||||
/* (4) Succès si tout ok */
|
|
||||||
return [ 'password' => $password ];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -131,15 +131,17 @@
|
||||||
|
|
||||||
/* SUPPRIME UN ENTREPOT DONNE
|
/* SUPPRIME UN ENTREPOT DONNE
|
||||||
*
|
*
|
||||||
* @id_admin<int> UID de l'administrateur en question
|
* @id_warehouse<int> UID de l'entrepôt en question
|
||||||
|
* @id_admin<int> UID de l'administrateur en question
|
||||||
*
|
*
|
||||||
* @return status<Boolean> Retourne si oui ou non l'administrateur a bien ete supprime
|
* @return status<Boolean> Retourne si oui ou non l'administrateur a bien ete supprime
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function delete($id_admin){
|
public static function delete($id_warehouse, $id_admin){
|
||||||
/* [1] On redige/execute la requete
|
/* [1] On redige/execute la requete
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$deleted = Table::get('admin')
|
$deleted = Table::get('admin')
|
||||||
|
->whereIdWarehouse($id_warehouse)
|
||||||
->whereId($id_admin)
|
->whereId($id_admin)
|
||||||
->delete();
|
->delete();
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
public function get_admins(){
|
public function get_admins(){
|
||||||
/* (1) On exécute la requête */
|
/* (1) On exécute la requête */
|
||||||
$adminListRq = new Request('authenticationDefault/get_admins');
|
$adminListRq = new Request('adminDefault/getAll');
|
||||||
|
|
||||||
/* (2) On recupere la reponse */
|
/* (2) On recupere la reponse */
|
||||||
$adminListRs = $adminListRq->dispatch();
|
$adminListRs = $adminListRq->dispatch();
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
{% block entry_tag %} <article class='inline-row' id='{{ admin.id_admin }}'> {% endblock %}
|
{% block entry_tag %} <article class='inline-row' id='{{ admin.id_admin }}'> {% endblock %}
|
||||||
|
|
||||||
{% block entry_name %} <span data-admin='{{ admin.id_admin }}' class='title'><span style='color: {{ core.theme }};'>#{{ admin.username }}</span></span> {% endblock %}
|
{% block entry_name %} <span data-admin='{{ admin.id_admin }}' class='title'><span style='color: {{ core.theme }};'>{{ admin.username }}</span></span> {% endblock %}
|
||||||
|
|
||||||
{% block entry_mail %}
|
{% block entry_mail %}
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,23 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"POST::get_admins": {
|
"POST::update_warehouse": {
|
||||||
|
"description": "Changement de code d'accés de l'entrepôt",
|
||||||
|
"permissions": [["admin"]],
|
||||||
|
"parameters": {
|
||||||
|
"old": { "description": "Mot de passe actuel", "type": "text" },
|
||||||
|
"new": { "description": "Nouveau mot de passe", "type": "text" },
|
||||||
|
"confirm": { "description": "Confirmation du nouveau mot de passe", "type": "text" }
|
||||||
|
},
|
||||||
|
"output": {}
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
"adminDefault": {
|
||||||
|
|
||||||
|
"POST::getAll": {
|
||||||
"description": "Retourne la liste des administrateurs de l'entrepôt.",
|
"description": "Retourne la liste des administrateurs de l'entrepôt.",
|
||||||
"permissions": [["admin"]],
|
"permissions": [["admin"]],
|
||||||
"parameters": {},
|
"parameters": {},
|
||||||
|
@ -70,7 +86,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"POST::update_admin": {
|
"POST::update": {
|
||||||
"description": "Changement de mot de passe administrateur",
|
"description": "Changement de mot de passe administrateur",
|
||||||
"permissions": [["admin"]],
|
"permissions": [["admin"]],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
@ -81,18 +97,16 @@
|
||||||
"output": {}
|
"output": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"POST::update_warehouse": {
|
"POST::delete": {
|
||||||
"description": "Changement de code d'accés de l'entrepôt",
|
"description": "Suppression d'un accès administrateur",
|
||||||
"permissions": [["admin"]],
|
"permissions": [["admin"]],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"old": { "description": "Mot de passe actuel", "type": "text" },
|
"id_admin": { "description": "Identifiant de l'administrateur", "type": "id" }
|
||||||
"new": { "description": "Nouveau mot de passe", "type": "text" },
|
|
||||||
"confirm": { "description": "Confirmation du nouveau mot de passe", "type": "text" }
|
|
||||||
},
|
},
|
||||||
"output": {}
|
"output": {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"POST::create_admin": {
|
"POST::create": {
|
||||||
"description": "Création d'un administrateur",
|
"description": "Création d'un administrateur",
|
||||||
"permissions": [["admin"]],
|
"permissions": [["admin"]],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
|
|
Loading…
Reference in New Issue