SMMP/build/api/module/authentificationDefault.php

123 lines
3.0 KiB
PHP
Executable File

<?php
namespace api\module;
use \database\core\DatabaseDriver;
use \api\core\Authentification;
use \database\core\Repo;
use \manager\repo\cluster as clusterRepo;
class authentificationDefault{
public function __construct(){
// Routine to execute before each call to authentificationDefault's method
}
public function __destruct(){
// Routine to execute after each call to authentificationDefault's method
}
/* CONNEXION A UN ENTREPOT
*
* @name<String> Nom de l'entrepot
* @password<String> Mot de passe de l'entrepot
*
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
*
*/
public function warehouse($params){
extract($params);
/* [0] Par défaut, on déconnecte
=========================================================*/
$_SESSION['AUTH'] = [];
/* [1] On recherche un entrepot avec ce nom
=========================================================*/
$getName = new Repo('warehouse/getByName', [$name]);
$nameFetched = $getName->answer();
// Si aucun résultat, on retourne le status FALSE
if( count($nameFetched) == 0 )
return [ 'status' => false ];
/* [2] On vérifie le mot de passe
=========================================================*/
$hash_password = secure_hash($password, $name);
// Si mot de passe faux, on retourne le status FALSE
if( $nameFetched[0]['password'] != $hash_password )
return [ 'status' => false ];
/* [3] On définit le token
=========================================================*/
$_SESSION['AUTH'][0] = $nameFetched[0]['token'];
// On retourne le status
return [ 'status' => true ];
}
/* CONNEXION EN TANT QU'ADMINISTRATEUR
*
* @username<String> Nom de l'administrateur
* @password<String> Mot de passe de l'administrateur
*
* @return status<Boolean> TRUE si les crédits sont bons, sinon FALSE
*
*/
public function admin($params){
extract($params);
/* [0] Par défaut, on déconnecte l'administrateur
=========================================================*/
$_SESSION['AUTH'][1] = '';
/* [1] On recherche un administrateur avec ce nom
=========================================================*/
$getUsername = new Repo('admin/getByUsername', [
$_SESSION['WAREHOUSE']['id'],
$username
]);
$usernameFetched = $getUsername->answer();
// Si aucun résultat, on retourne le status FALSE
if( $usernameFetched === false )
return [ 'status' => false ];
/* [2] On vérifie le mot de passe
=========================================================*/
$hash_password = secure_hash($password, $username);
// Si mot de passe faux, on retourne le status FALSE
if( $usernameFetched['password'] != $hash_password )
return [ 'status' => false ];
/* [3] On définit le token
=========================================================*/
$_SESSION['AUTH'][1] = $usernameFetched['token'];
// On retourne le status
return [ 'status' => true ];
}
}
?>