- [x] Ajout de "use CLASS;" dans les fichiers pour simplifier la lisibilite
This commit is contained in:
parent
e4669f02c4
commit
89c1420f62
10
automate.php
10
automate.php
|
@ -1,13 +1,7 @@
|
|||
<?php define('__ROOT__', dirname(__FILE__) );
|
||||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
|
||||
|
||||
ini_set('display_errors',1);
|
||||
ini_set('display_startup_errors',1);
|
||||
error_reporting(-1);
|
||||
|
||||
|
||||
|
||||
debug();
|
||||
|
||||
|
||||
|
||||
|
@ -246,7 +240,7 @@
|
|||
|
||||
return true;
|
||||
|
||||
}insertUsersComposite();
|
||||
}//insertUsersComposite();
|
||||
|
||||
|
||||
?>
|
|
@ -2,25 +2,34 @@
|
|||
"user" :[
|
||||
"create",
|
||||
|
||||
"getAll",
|
||||
"getById",
|
||||
"getByCode",
|
||||
"getAll",
|
||||
"getGroup",
|
||||
"getByUsername",
|
||||
|
||||
"getGroups",
|
||||
|
||||
"delete"
|
||||
],
|
||||
|
||||
"machine" :[
|
||||
"get",
|
||||
"create",
|
||||
|
||||
"getAll",
|
||||
"getById",
|
||||
|
||||
"getGroup"
|
||||
],
|
||||
|
||||
"group" :[
|
||||
"get",
|
||||
"create",
|
||||
"link",
|
||||
"unlink",
|
||||
|
||||
"getAll",
|
||||
"getUser",
|
||||
"getMachine"
|
||||
"getById",
|
||||
|
||||
"getMembers"
|
||||
]
|
||||
|
||||
}
|
12
index.php
12
index.php
|
@ -1,7 +1,11 @@
|
|||
<?php define('__ROOT__', dirname(__FILE__) );
|
||||
// \manager\session_start();
|
||||
|
||||
require_once __ROOT__.'/manager/autoloader.php';
|
||||
|
||||
use \router\Router;
|
||||
use \manager\ResourceDispatcher;
|
||||
use \manager\ModuleRequest;
|
||||
|
||||
/*******************************************/
|
||||
/* DEBUGGER */
|
||||
/*******************************************/
|
||||
|
@ -11,7 +15,7 @@
|
|||
|
||||
/* [0] On initialise le routeur
|
||||
===================================================*/
|
||||
$R = new router\Router( $_GET['url'] );
|
||||
$R = new Router( $_GET['url'] );
|
||||
// var_dump($R);
|
||||
|
||||
/* [1] On cree les regles de routage
|
||||
|
@ -37,11 +41,11 @@
|
|||
// $R->get('settings/', function(){ include __ROOT__.'/view.php'; });
|
||||
|
||||
// Dispatcher
|
||||
$R->get('f(?:/([\w-]+))*/?', function(){ new \manager\ResourceDispatcher($_GET['url'], true); });
|
||||
$R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); });
|
||||
|
||||
// Api
|
||||
$R->post('api/?', function(){
|
||||
$request = \manager\ModuleRequest::fromPost($_POST);
|
||||
$request = ModuleRequest::fromPost($_POST);
|
||||
$answer = $request->dispatch();
|
||||
|
||||
echo $answer->serialize();
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<?php
|
||||
|
||||
namespace manager;
|
||||
use \manager\ManagerError;
|
||||
use \manager\ResourceDispatcher;
|
||||
|
||||
|
||||
class DataBase{
|
||||
|
@ -34,18 +36,18 @@
|
|||
self::$pdo = new \PDO('mysql:host='.$this->host.';dbname='.$this->dbname, $this->username, $this->password);
|
||||
|
||||
// On signale que tout s'est bien passe
|
||||
self::$error = \manager\ManagerError::Success;
|
||||
self::$error = ManagerError::Success;
|
||||
|
||||
}catch(Exception $e){
|
||||
// On signale qu'il y a une erreur
|
||||
self::$error = \manager\ManagerError::PDOConnection;
|
||||
self::$error = ManagerError::PDOConnection;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* retourne une instance de la classe */
|
||||
public static function getInstance(){
|
||||
if( self::$instance == null || self::$error != \manager\ManagerError::Success ){ // Si aucune instance existante OU erreur de connection
|
||||
if( self::$instance == null || self::$error != ManagerError::Success ){ // Si aucune instance existante OU erreur de connection
|
||||
|
||||
// chargement de la configuration du server SQL
|
||||
if( !isset($_SERVER['HTTP_HOST']) || isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'stefproject' )
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace manager;
|
||||
use \manager\ManagerError;
|
||||
|
||||
|
||||
// FORMAT:
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace manager;
|
||||
|
||||
use \manager\ModuleAnswer;
|
||||
use \manager\ManagerError;
|
||||
use \manager\ResourceDispatcher;
|
||||
|
||||
// FORMAT:
|
||||
//
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
<?php
|
||||
|
||||
// On definit la racine __ROOT__ si c'est pas deja fait
|
||||
if( !defined('__ROOT__') )
|
||||
define('__ROOT__', dirname(dirname(__FILE__)) );
|
||||
if( !defined('__ROOT__') ) define('__ROOT__', dirname(dirname(__FILE__)) );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -16,6 +20,30 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* APPEL DYNAMIQUE DES CLASSES PASSEES EN PARAMETRE
|
||||
*
|
||||
* @classes<Array> Tableau contenant le nom des classes
|
||||
*
|
||||
*/
|
||||
function autoload($classes){
|
||||
foreach($classes as $class){
|
||||
$name_only = substr(strrchr($class, '\\'), 1);
|
||||
var_dump('use '.$class.' as '.$name_only.';');
|
||||
eval('use '.$class.' as '.$name_only.';');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* AUTOLOADER
|
||||
*
|
||||
* @className<String> Nom de la classe appelee
|
||||
|
@ -30,9 +58,10 @@
|
|||
$path = str_replace('\\', '/', $className) . '.php';
|
||||
$path = __ROOT__.'/'.$path;
|
||||
|
||||
// Si le fichier existe, on l'inclut
|
||||
// Si le fichier existe
|
||||
if( file_exists($path) )
|
||||
require_once $path;
|
||||
require_once $path; // on inclue le fichier
|
||||
|
||||
}
|
||||
|
||||
// On definit l'autoloader comme autoloader (obvious)
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace manager\module;
|
||||
use \manager\Database;
|
||||
use \manager\sessionManager;
|
||||
use \manager\ManagerError;
|
||||
use \manager\Repo;
|
||||
|
||||
class userDefault{
|
||||
|
||||
|
@ -12,7 +16,7 @@
|
|||
*/
|
||||
public static function getAll(){
|
||||
// On recupere les donnees
|
||||
$users = new \manager\Repo('user/getAll');
|
||||
$users = new Repo('user/getAll');
|
||||
|
||||
return array(
|
||||
'users' => $users->answer()
|
||||
|
@ -37,54 +41,62 @@
|
|||
public static function create($code=null, $username=null, $firstname=null, $lastname=null, $mail=null, $password=null, $status=null){
|
||||
/* [1] Normalisation + verification des donnees
|
||||
=========================================================*/
|
||||
$password_hash = \manager\sessionManager::secure_sha1($password);
|
||||
$password_hash = sessionManager::secure_sha1($password);
|
||||
|
||||
$correct_param = \manager\Database::check('user.code', $code);
|
||||
$correct_param = $correct_param && \manager\Database::check('user.username', $username);
|
||||
$correct_param = $correct_param && \manager\Database::check('user.firstname', $firstname);
|
||||
$correct_param = $correct_param && \manager\Database::check('user.lastname', $lastname);
|
||||
$correct_param = $correct_param && \manager\Database::check('user.mail', $mail);
|
||||
$correct_param = $correct_param && \manager\Database::check('user.password', $password_hash);
|
||||
$correct_param = $correct_param && \manager\Database::check('user.status', $status);
|
||||
$correct_param = Database::check('user.code', $code);
|
||||
$correct_param = $correct_param && Database::check('user.username', $username);
|
||||
$correct_param = $correct_param && Database::check('user.firstname', $firstname);
|
||||
$correct_param = $correct_param && Database::check('user.lastname', $lastname);
|
||||
$correct_param = $correct_param && Database::check('user.mail', $mail);
|
||||
$correct_param = $correct_param && Database::check('user.password', $password_hash);
|
||||
$correct_param = $correct_param && Database::check('user.status', $status);
|
||||
|
||||
// Si les parametres ne sont pas corrects, on retourne une erreur
|
||||
if( !$correct_param )
|
||||
return array('ModuleError' => \manager\ManagerError::ParamError);
|
||||
return array('ModuleError' => ManagerError::ParamError);
|
||||
|
||||
|
||||
|
||||
|
||||
/* [2] Creation de l'utilisateur
|
||||
=========================================================*/
|
||||
$create_user = new \manager\Repo('user/create', array($code, $username, $firstname, $lastname, $mail, $password_hash, $status) );
|
||||
$create_user = new Repo('user/create', array($code, $username, $firstname, $lastname, $mail, $password_hash, $status) );
|
||||
$id_user = $create_user->answer();
|
||||
|
||||
// Si une erreur est retournee, on retourne une erreur
|
||||
if( $id_user === false )
|
||||
return array('ModuleError' => \manager\ManagerError::ModuleError);
|
||||
return array('ModuleError' => ManagerError::ModuleError);
|
||||
|
||||
|
||||
|
||||
|
||||
/* [3] Creation du groupe de meme nom que l'username
|
||||
=========================================================*/
|
||||
$create_group = new \manager\Repo('group/create', array($username) );
|
||||
$create_group = new Repo('group/create', array($username) );
|
||||
$id_group = $create_group->answer();
|
||||
|
||||
// Si une erreur est retournee, on retourne une erreur
|
||||
if( $id_group === false )
|
||||
return array('ModuleError' => \manager\ManagerError::ModuleError);
|
||||
return array('ModuleError' => ManagerError::ModuleError);
|
||||
|
||||
|
||||
|
||||
|
||||
/* [4] Association au groupe
|
||||
=========================================================*/
|
||||
$assoc_goup = new \manager\Repo('group/associate', array($id_user, $id_group));
|
||||
$assoc_goup = new Repo('group/link', array($id_user, $id_group));
|
||||
$id_assoc = $assoc_goup->answer();
|
||||
|
||||
// Si une erreur est retournee, on retourne une erreur
|
||||
if( $id_assoc === false )
|
||||
return array('ModuleError' => \manager\ManagerError::ModuleError);
|
||||
return array('ModuleError' => ManagerError::ModuleError);
|
||||
|
||||
|
||||
|
||||
/* [5] Gestion du retour
|
||||
=========================================================*/
|
||||
return array(
|
||||
'ModuleError' => \manager\ManagerError::Success,
|
||||
'ModuleError' => ManagerError::Success,
|
||||
'id_user' => $id_user
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,115 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace manager\repo;
|
||||
use \manager\Database;
|
||||
|
||||
class user{
|
||||
|
||||
|
||||
/* RENVOIE LA LISTE DE TOUS LES UTILISATEURS
|
||||
*
|
||||
* @return utilisateurs<Array> Liste des utilisateurs de la BDD
|
||||
*
|
||||
*/
|
||||
public static function getAll(){
|
||||
// On ecrit la requete
|
||||
$request = \manager\Database::getPDO()->query("SELECT * FROM user ORDER BY id_user");
|
||||
|
||||
// On recupere le resutat
|
||||
$answer = $request->fetchAll();
|
||||
|
||||
// On retourne en supprimant les indices numeriques
|
||||
return \manager\Database::delNumeric( $answer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE L'UTILISATEUR D'ID DONNE
|
||||
*
|
||||
* @id<int> Id de l'utilisateur en question
|
||||
*
|
||||
* @return utilisateur<Array> Renvoie l'utilisateur d'id donne si existe
|
||||
* @return error<Boolean> Retourne FALSE si aucun resultat
|
||||
*
|
||||
*/
|
||||
public static function getById($id){
|
||||
// On ecrit la requete
|
||||
$request = \manager\Database::getPDO()->prepare("SELECT * FROM user
|
||||
WHERE id_user = :id");
|
||||
|
||||
// On execute la requete
|
||||
$request->execute(array(
|
||||
':id' => $id
|
||||
));
|
||||
|
||||
// On recupere 1 seul utilisateur
|
||||
$answer = $request->fetch();
|
||||
|
||||
// Gestion d'erreur -> aucun resultat
|
||||
if( $answer == null )
|
||||
return false;
|
||||
|
||||
// On retourne en supprimant les indices numeriques
|
||||
return \manager\Database::delNumeric( $answer, true );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE L'UTILISATEUR DE CODE DONNE
|
||||
*
|
||||
* @code<String> Code de l'utilisateur en question
|
||||
*
|
||||
* @return utilisateur<Array> Renvoie l'utilisateur de code donne si existe
|
||||
* @return error<Boolean> Retourne FALSE si aucun resultat
|
||||
*
|
||||
*/
|
||||
public static function getByCode($code){
|
||||
// On ecrit la requete
|
||||
$request = \manager\Database::getPDO()->prepare("SELECT * FROM user
|
||||
WHERE code = :code");
|
||||
|
||||
// On execute la requete
|
||||
$request->execute(array(
|
||||
':code' => $code
|
||||
));
|
||||
|
||||
// On recupere 1 seul utilisateur
|
||||
$answer = $request->fetch();
|
||||
|
||||
// Gestion d'erreur -> aucun resultat
|
||||
if( $answer == null )
|
||||
return false;
|
||||
|
||||
// On retourne en supprimant les indices numeriques
|
||||
return \manager\Database::delNumeric( $answer, true );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* CREATION D'UN UTILISATEUR ET DE SON GROUPE INDIVIDUEL
|
||||
*
|
||||
* @code<String> Code RFID de l'utilisateur
|
||||
|
@ -127,6 +22,7 @@
|
|||
/* [1] Creation de l'utilisateur (unicite de l'username)
|
||||
=========================================================*/
|
||||
$check_unique = ( self::getByCode($code) == false );
|
||||
$check_unique = $check_unique && ( self::getByUsername($username) == false );
|
||||
|
||||
var_dump($check_unique);
|
||||
|
||||
|
@ -135,6 +31,204 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE LA LISTE DE TOUS LES UTILISATEURS
|
||||
*
|
||||
* @return utilisateurs<Array> Liste des utilisateurs de la BDD
|
||||
*
|
||||
*/
|
||||
public static function getAll(){
|
||||
// On ecrit la requete
|
||||
$request = Database::getPDO()->query("SELECT * FROM user ORDER BY id_user");
|
||||
|
||||
// On recupere le resutat
|
||||
$answer = $request->fetchAll();
|
||||
|
||||
// On retourne en supprimant les indices numeriques
|
||||
return Database::delNumeric( $answer );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE L'UTILISATEUR D'ID DONNE
|
||||
*
|
||||
* @id<int> Id de l'utilisateur en question
|
||||
*
|
||||
* @return utilisateur<Array> Renvoie l'utilisateur d'id donne si existe
|
||||
* @return error<Boolean> Retourne FALSE si aucun resultat
|
||||
*
|
||||
*/
|
||||
public static function getById($id){
|
||||
// On ecrit la requete
|
||||
$request = Database::getPDO()->prepare("SELECT * FROM user
|
||||
WHERE id_user = :id");
|
||||
|
||||
// On execute la requete
|
||||
$request->execute(array(
|
||||
':id' => $id
|
||||
));
|
||||
|
||||
// On recupere 1 seul utilisateur
|
||||
$answer = $request->fetch();
|
||||
|
||||
// Gestion d'erreur -> aucun resultat
|
||||
if( $answer == null )
|
||||
return false;
|
||||
|
||||
// On retourne en supprimant les indices numeriques
|
||||
return Database::delNumeric( $answer, true );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE L'UTILISATEUR DE CODE DONNE
|
||||
*
|
||||
* @code<String> Code de l'utilisateur en question
|
||||
*
|
||||
* @return utilisateur<Array> Renvoie l'utilisateur de code donne si existe
|
||||
* @return error<Boolean> Retourne FALSE si aucun resultat
|
||||
*
|
||||
*/
|
||||
public static function getByCode($code){
|
||||
// On ecrit la requete
|
||||
$request = Database::getPDO()->prepare("SELECT * FROM user
|
||||
WHERE code = :code");
|
||||
|
||||
// On execute la requete
|
||||
$request->execute(array(
|
||||
':code' => $code
|
||||
));
|
||||
|
||||
// On recupere 1 seul utilisateur
|
||||
$answer = $request->fetch();
|
||||
|
||||
// Gestion d'erreur -> aucun resultat
|
||||
if( $answer == null )
|
||||
return false;
|
||||
|
||||
// On retourne en supprimant les indices numeriques
|
||||
return Database::delNumeric( $answer, true );
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE L'UTILISATEUR D'USERNAME DONNE
|
||||
*
|
||||
* @username<String> Identifiant de l'utilisateur en question
|
||||
*
|
||||
* @return utilisateur<Array> Renvoie l'utilisateur d'username donne si existe
|
||||
* @return error<Boolean> Retourne FALSE si aucun resultat
|
||||
*
|
||||
*/
|
||||
public static function getByUsername($username){
|
||||
// On ecrit la requete
|
||||
$request = Database::getPDO()->prepare("SELECT * FROM user
|
||||
WHERE username = :username");
|
||||
|
||||
// On execute la requete
|
||||
$request->execute(array(
|
||||
':username' => $username
|
||||
));
|
||||
|
||||
// On recupere 1 seul utilisateur
|
||||
$answer = $request->fetch();
|
||||
|
||||
// Gestion d'erreur -> aucun resultat
|
||||
if( $answer == null )
|
||||
return false;
|
||||
|
||||
// On retourne en supprimant les indices numeriques
|
||||
return Database::delNumeric( $answer, true );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* RENVOIE LES GROUPE AUQUELS UN UTILISATEUR DONNE APPARTIENT
|
||||
*
|
||||
* @id_user<int> UID de l'utilisateur en question
|
||||
*
|
||||
* @return groups<Array> Renvoie un tableau d'UID des groupes
|
||||
*
|
||||
*/
|
||||
public static function getGroups($id_user){
|
||||
/* [1] On redige/execute la requete
|
||||
=========================================================*/
|
||||
$select_groups = Database::getPDO()->prepare("SELECT gm.id_group FROM user as u, group_merge as gm
|
||||
WHERE u.id_user = gm.id_user
|
||||
AND u.id_user = :id_user
|
||||
ORDER BY gm.id_user ASC");
|
||||
$select_groups->execute(array(
|
||||
':id_user' => $id_user
|
||||
));
|
||||
|
||||
// On retourne en supprimant les indices numeriques
|
||||
return Database::delNumeric( $select_groups->fetchAll() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* SUPPRIME UN UTILISATEUR DONNE
|
||||
*
|
||||
* @id_user<int> UID de l'utilisateur en question
|
||||
*
|
||||
* @return status<Boolean> Retourne si oui ou non l'utilisateur a bien ete supprime
|
||||
*
|
||||
*/
|
||||
public static function delete($id_user){
|
||||
/* [1] On redige/execute la requete
|
||||
=========================================================*/
|
||||
$delete_user = Database::getPDO()->prepare("DELETE FROM user WHERE id_user = :id_user");
|
||||
$delete_user->execute(array(
|
||||
':id_user' => $id_user
|
||||
));
|
||||
|
||||
|
||||
/* [2] On verifie que l'utilisateur n'existe plus
|
||||
=========================================================*/
|
||||
return ( self::getById($id_user) === false );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
1
todo.md
1
todo.md
|
@ -39,6 +39,7 @@
|
|||
########
|
||||
# FAIT #
|
||||
########
|
||||
- [x] Ajout de "use CLASS;" dans les fichiers pour simplifier la lisibilite
|
||||
- [x] [phpunit/sessionManager] test unitaires du manager de session php
|
||||
- [x] [ModuleAnswer] Gestion des erreurs au niveau interne des Modules
|
||||
- [x] [autoloader][phpunit/bootstrap.php] Correction des bugs de $_SERVER avec PHPUnit -> autoloader + bootstrap personnalise
|
||||
|
|
Loading…
Reference in New Issue