- [x] [manager/repo/]Creation des repos

- [x] [user] utilisateur
	- [x] [machine] machines
	- [x] [cluster] groupes

- [ ] Gestion des groupes (utilisateurs/machines)
	- [x] bdd
	- [x] Creation d'un groupe individuel pour utilisateurs + association
This commit is contained in:
xdrm-brackets 2016-02-14 12:37:19 +01:00
parent f238a18204
commit 84e3cf33b6
8 changed files with 691 additions and 40 deletions

View File

@ -1,6 +1,11 @@
<?php define('__ROOT__', dirname(__FILE__) ); <?php define('__ROOT__', dirname(__FILE__) );
require_once __ROOT__.'/manager/autoloader.php'; require_once __ROOT__.'/manager/autoloader.php';
use \manager\ModuleRequest;
use \manager\ResourceDispatcher;
use \manager\ManagerError;
use \manager\Repo;
debug(); debug();
@ -14,13 +19,13 @@
* *
*/ */
function insertUsersFromJSON(){ function insertUsersFromJSON(){
$json = \manager\ResourceDispatcher::getResource('f/json/generated_users/conf'); $json = ResourceDispatcher::getResource('f/json/generated_users/conf');
$json = json_decode( $json, true ); $json = json_decode( $json, true );
// Pour chaque entree // Pour chaque entree
foreach( $json as $user ){ foreach( $json as $user ){
$insertRequest = \manager\Database::getPDO()->prepare("INSERT INTO user(id_user, code, username, firstname, lastname, mail, password, status) $insertRequest = Database::getPDO()->prepare("INSERT INTO user(id_user, code, username, firstname, lastname, mail, password, status)
VALUES( VALUES(
DEFAULT, DEFAULT,
:code, :code,
@ -59,13 +64,13 @@
* *
*/ */
function insertMachinesFromJSON(){ function insertMachinesFromJSON(){
$json = \manager\ResourceDispatcher::getResource('f/json/generated_machines/conf'); $json = ResourceDispatcher::getResource('f/json/generated_machines/conf');
$json = json_decode( $json, true ); $json = json_decode( $json, true );
// Pour chaque entree // Pour chaque entree
foreach( $json as $machine ){ foreach( $json as $machine ){
$insertRequest = \manager\Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name) $insertRequest = Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name)
VALUES( VALUES(
DEFAULT, DEFAULT,
:code, :code,
@ -102,10 +107,10 @@
function selectUsers(){ function selectUsers(){
// Creation de la requete // Creation de la requete
$requete = new manager\ModuleRequest('userDefault/getAll'); $requete = new ModuleRequest('userDefault/getAll');
$answer = $requete->dispatch(); $answer = $requete->dispatch();
var_dump( \manager\ManagerError::explicit($answer->error) ); var_dump( ManagerError::explicit($answer->error) );
var_dump( $answer->get('users') ); var_dump( $answer->get('users') );
return true; return true;
@ -126,10 +131,10 @@
function selectMachines(){ function selectMachines(){
// Creation de la requete // Creation de la requete
$requete = new manager\ModuleRequest('machineDefault/getAll'); $requete = new ModuleRequest('machineDefault/getAll');
$answer = $requete->dispatch(); $answer = $requete->dispatch();
var_dump( \manager\ManagerError::explicit($answer->error) ); var_dump( ManagerError::explicit($answer->error) );
var_dump( $answer->get('machines') ); var_dump( $answer->get('machines') );
return true; return true;
@ -152,12 +157,12 @@
function displayUsers(){ function displayUsers(){
// Creation de la requete // Creation de la requete
$request = new \manager\ModuleRequest('userDefault/getAll'); $request = new ModuleRequest('userDefault/getAll');
$answer = $request->dispatch(); $answer = $request->dispatch();
// Debug error // Debug error
if( $answer->error != \manager\ManagerError::Success ) if( $answer->error != ManagerError::Success )
var_dump( \manager\ManagerError::explicit($answer->error) ); var_dump( ManagerError::explicit($answer->error) );
// display result // display result
var_dump( $answer->getAll() ); var_dump( $answer->getAll() );
@ -182,9 +187,9 @@
function testModuleDispatcher(){ function testModuleDispatcher(){
// Creation d'une requete en objet // Creation d'une requete en objet
$req1 = new manager\ModuleRequest('firstModule/returnvar', array('id_user' => 10, 'code' => '11-22-33-44') ); $req1 = new ModuleRequest('firstModule/returnvar', array('id_user' => 10, 'code' => '11-22-33-44') );
// Creation d'une requete a partir d'un json en <String> // Creation d'une requete a partir d'un json en <String>
$req2 = manager\ModuleRequest::fromString('{"path": "firstModule/returnvar", "data": {"id_user":10, "code":"11-22-33-44"}}'); $req2 = ModuleRequest::fromString('{"path": "firstModule/returnvar", "data": {"id_user":10, "code":"11-22-33-44"}}');
var_dump( $req1->dispatch() ); var_dump( $req1->dispatch() );
@ -204,12 +209,12 @@
function testRepoDispatcher(){ function testRepoDispatcher(){
// Creation d'une requete en objet // Creation d'une requete en objet
$req1 = new manager\Repo('user/getById', array('19')); $req1 = new Repo('user/getById', array('19'));
// $req1 = new manager\Repo('user/getByCode', array('92-55-B9-B3')); // $req1 = new Repo('user/getByCode', array('92-55-B9-B3'));
var_dump( $req1->answer() ); var_dump( $req1->answer() );
if( $req1->error != manager\ManagerError::Success ) if( $req1->error != ManagerError::Success )
var_dump( manager\ManagerError::explicit($req1->error) ); var_dump( ManagerError::explicit($req1->error) );
return true; return true;
@ -230,17 +235,15 @@
function insertUsersComposite(){ function insertUsersComposite(){
// Creation de la requete // Creation de la requete
$request = new \manager\ModuleRequest('userDefault/create', array('92-55-B9-B3', 'b', 'bla', 'bla', 'bla@test.com', 'sadas', '1') ); $request = new ModuleRequest('userDefault/create', array('92-55-B9-B1', 'b', 'bla', 'bla', 'bla@test.com', 'sadas', '1') );
$answer = $request->dispatch(); $answer = $request->dispatch();
// Debug error // Debug error
var_dump( $answer->error ); if( $answer->error != ManagerError::Success )
var_dump( \manager\ManagerError::explicit($answer->error) ); var_dump( ManagerError::explicit($answer->error) );
var_dump( $answer->getAll() ); var_dump( $answer->getAll() );
return true; return true;
}//insertUsersComposite(); }insertUsersComposite();
?> ?>

View File

@ -3,7 +3,7 @@
-- http://www.phpmyadmin.net -- http://www.phpmyadmin.net
-- --
-- Client: localhost -- Client: localhost
-- Généré le: Lun 08 Février 2016 à 18:09 -- Généré le: Dim 14 Février 2016 à 12:20
-- Version du serveur: 5.5.47-0ubuntu0.14.04.1 -- Version du serveur: 5.5.47-0ubuntu0.14.04.1
-- Version de PHP: 5.5.9-1ubuntu4.14 -- Version de PHP: 5.5.9-1ubuntu4.14
@ -22,6 +22,38 @@ SET time_zone = "+00:00";
-- -------------------------------------------------------- -- --------------------------------------------------------
--
-- Structure de la table `cluster`
--
CREATE TABLE IF NOT EXISTS `cluster` (
`id_cluster` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
PRIMARY KEY (`id_cluster`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `cluster`
--
INSERT INTO `cluster` (`id_cluster`, `name`) VALUES
(2, 'b');
-- --------------------------------------------------------
--
-- Structure de la table `cluster_merge`
--
CREATE TABLE IF NOT EXISTS `cluster_merge` (
`id_cluster_merge` int(11) NOT NULL AUTO_INCREMENT,
`id_cluster` int(11) NOT NULL,
`id_entity` int(11) NOT NULL,
PRIMARY KEY (`id_cluster_merge`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
-- --
-- Structure de la table `history` -- Structure de la table `history`
-- --
@ -29,8 +61,8 @@ SET time_zone = "+00:00";
CREATE TABLE IF NOT EXISTS `history` ( CREATE TABLE IF NOT EXISTS `history` (
`id_history` int(11) NOT NULL AUTO_INCREMENT, `id_history` int(11) NOT NULL AUTO_INCREMENT,
`action` int(11) NOT NULL, `action` int(11) NOT NULL,
`id_acteur` varchar(20) NOT NULL, `id_acteur` int(11) NOT NULL,
`id_machine` varchar(20) NOT NULL, `id_machine` int(11) NOT NULL,
PRIMARY KEY (`id_history`) PRIMARY KEY (`id_history`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
@ -43,9 +75,115 @@ CREATE TABLE IF NOT EXISTS `history` (
CREATE TABLE IF NOT EXISTS `machine` ( CREATE TABLE IF NOT EXISTS `machine` (
`id_machine` int(11) NOT NULL AUTO_INCREMENT, `id_machine` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(20) NOT NULL, `code` varchar(20) NOT NULL,
`name` int(11) NOT NULL, `name` varchar(30) NOT NULL,
PRIMARY KEY (`id_machine`) PRIMARY KEY (`id_machine`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=201 ;
--
-- Contenu de la table `machine`
--
INSERT INTO `machine` (`id_machine`, `code`, `name`) VALUES
(101, 'CB-40-70-A0', 'WNTKO'),
(102, 'C9-42-46-45', 'RMUAY'),
(103, '30-DA-23-C0', 'ZSCMZ'),
(104, '6B-F0-82-05', 'AWCUX'),
(105, 'C8-67-58-0E', 'HKSWO'),
(106, 'CB-94-1E-F3', 'ASIFJ'),
(107, '3F-A6-B3-5E', 'CCKEV'),
(108, '8E-24-B5-24', 'KDVSJ'),
(109, '27-15-0B-9D', 'VCEWY'),
(110, 'FE-38-93-E9', 'UKWVN'),
(111, '07-6F-B6-B6', 'FFJDJ'),
(112, '3A-A8-8E-B1', 'NHCWO'),
(113, 'A3-15-41-38', 'IBRFK'),
(114, '99-30-04-B1', 'FGLXK'),
(115, '80-A8-91-C8', 'BUZRV'),
(116, '97-F3-00-93', 'WKNTM'),
(117, 'C6-F7-45-02', 'SPQOQ'),
(118, '25-11-D9-70', 'SSRWE'),
(119, '5B-EF-81-00', 'TIBAH'),
(120, '74-18-01-AE', 'EKOFT'),
(121, '07-27-C3-41', 'GJTJW'),
(122, '23-38-C6-B5', 'XIPNP'),
(123, '35-49-0B-88', 'FDFXQ'),
(124, '36-00-7F-1C', 'HSCUZ'),
(125, 'CB-60-BB-1A', 'BYKBF'),
(126, 'FE-5F-E7-FB', 'GNOKK'),
(127, '54-D1-4D-EC', 'WLSUB'),
(128, '9D-D8-C8-53', 'DMTTJ'),
(129, '32-A8-CB-08', 'OCFWD'),
(130, 'A4-B4-FC-74', 'CABWU'),
(131, '9E-E7-87-A0', 'BUWRJ'),
(132, '3F-90-8D-56', 'OULIX'),
(133, 'C7-95-56-96', 'XCDYM'),
(134, '98-5B-99-35', 'LREGF'),
(135, 'C0-1C-52-1E', 'DDLSP'),
(136, 'AE-01-18-81', 'DTGHG'),
(137, '85-46-39-94', 'BZWUE'),
(138, '9C-3C-45-AB', 'LGDDS'),
(139, '14-A5-92-CE', 'ERXMY'),
(140, 'A4-35-C5-76', 'VJGER'),
(141, '69-8E-6A-11', 'LOXIE'),
(142, '04-73-52-C8', 'IHARA'),
(143, '66-48-DF-7B', 'ZIQJQ'),
(144, '01-D9-22-86', 'ZKUEW'),
(145, 'B4-AC-F6-93', 'BLDTO'),
(146, 'E3-B8-CC-D4', 'OZRQF'),
(147, 'FF-18-3D-CB', 'NWPBM'),
(148, '68-2D-86-1D', 'OZDYC'),
(149, '65-AC-44-36', 'ETUZU'),
(150, '9D-3F-90-E9', 'CNQAB'),
(151, '8B-DE-55-B5', 'OPIIW'),
(152, '15-1B-34-D7', 'ACARQ'),
(153, '0D-E1-41-A8', 'NMHYG'),
(154, '19-FB-D2-82', 'ASKZD'),
(155, 'C6-55-0A-22', 'QMIJT'),
(156, '61-E4-51-C7', 'BBDZL'),
(157, '65-78-34-50', 'WKKYH'),
(158, '41-9A-BF-99', 'AFHJH'),
(159, '05-0D-82-31', 'CASXB'),
(160, '0D-21-6F-00', 'LOXOZ'),
(161, 'F7-84-53-CF', 'ZTUNO'),
(162, 'C2-9A-2D-9A', 'QGQNK'),
(163, 'BE-57-E3-29', 'SVIBS'),
(164, '13-39-5D-21', 'RSVXL'),
(165, 'A6-3D-D3-AC', 'EMESC'),
(166, 'F2-EF-83-5E', 'BBXON'),
(167, '52-F5-7D-2B', 'NGLBK'),
(168, 'BA-30-5C-C7', 'MZHBC'),
(169, 'B5-43-98-38', 'OYEPB'),
(170, '95-AC-FD-6F', 'RQFNK'),
(171, 'E0-12-F0-7D', 'MRUUS'),
(172, 'E2-5F-C1-1F', 'DJDVW'),
(173, '0B-0B-AF-49', 'SOJEJ'),
(174, 'C1-AF-BE-FD', 'YYSRC'),
(175, '6B-71-12-94', 'AJNMI'),
(176, 'E0-D3-67-BB', 'IVUSU'),
(177, 'D7-02-23-82', 'VYPUB'),
(178, '3F-AA-D7-E0', 'SJYUN'),
(179, 'CA-0E-31-E6', 'QRGTG'),
(180, 'D4-92-6B-03', 'LXIFX'),
(181, 'EE-0A-F5-D3', 'YXWTP'),
(182, '73-EB-04-C8', 'SMEFT'),
(183, '32-37-21-39', 'HUTUW'),
(184, '97-13-49-2E', 'DYCLY'),
(185, 'EE-63-92-60', 'VBJWP'),
(186, 'B3-88-BB-2B', 'CZRPO'),
(187, 'F5-7D-F5-7E', 'JCNSP'),
(188, 'AA-A9-B2-83', 'EOKCA'),
(189, 'EA-62-F6-F9', 'PZEAK'),
(190, '3D-3B-BE-D9', 'ERIMX'),
(191, '75-57-68-54', 'NGVPC'),
(192, '0E-F0-AD-27', 'MVONW'),
(193, '84-39-68-9B', 'ZUHOD'),
(194, '75-E4-50-0C', 'YIATG'),
(195, 'E8-F6-C1-CF', 'WFQGC'),
(196, '55-89-B7-34', 'NKZQL'),
(197, 'B2-67-DD-0C', 'EMIWA'),
(198, '11-7C-2E-A4', 'WOYWY'),
(199, 'CB-D8-B5-A2', 'ZBLQG'),
(200, 'CE-A1-20-27', 'STQYS');
-- -------------------------------------------------------- -- --------------------------------------------------------
@ -63,7 +201,7 @@ CREATE TABLE IF NOT EXISTS `user` (
`password` varchar(40) NOT NULL, `password` varchar(40) NOT NULL,
`status` int(11) NOT NULL, `status` int(11) NOT NULL,
PRIMARY KEY (`id_user`) PRIMARY KEY (`id_user`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=101 ; ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=107 ;
-- --
-- Contenu de la table `user` -- Contenu de la table `user`
@ -169,7 +307,8 @@ INSERT INTO `user` (`id_user`, `code`, `username`, `firstname`, `lastname`, `mai
(97, '48-03-38-1F', 'Witt', 'Larsen', 'Strong', 'larsenstrong@corecom.com', '8292d357d783eb4ab3900fba170fb8977e9a8720', 0), (97, '48-03-38-1F', 'Witt', 'Larsen', 'Strong', 'larsenstrong@corecom.com', '8292d357d783eb4ab3900fba170fb8977e9a8720', 0),
(98, 'E0-4B-04-F6', 'Valarie', 'Craft', 'Klein', 'craftklein@corecom.com', 'b1f2ec40a2f4457d88662b3ef22ff8fe16fb5e4c', 0), (98, 'E0-4B-04-F6', 'Valarie', 'Craft', 'Klein', 'craftklein@corecom.com', 'b1f2ec40a2f4457d88662b3ef22ff8fe16fb5e4c', 0),
(99, '2F-7D-0A-51', 'Jessica', 'Delgado', 'Campos', 'delgadocampos@corecom.com', '8125b1397016438dc4342d829c286b7597c69803', 0), (99, '2F-7D-0A-51', 'Jessica', 'Delgado', 'Campos', 'delgadocampos@corecom.com', '8125b1397016438dc4342d829c286b7597c69803', 0),
(100, '91-D4-7E-65', 'Velez', 'Mcmahon', 'Lott', 'mcmahonlott@corecom.com', 'b6a433da4441737be56635dd80d1a5a8eec2bcd3', 1); (100, '91-D4-7E-65', 'Velez', 'Mcmahon', 'Lott', 'mcmahonlott@corecom.com', 'b6a433da4441737be56635dd80d1a5a8eec2bcd3', 1),
(106, '92-55-B9-B1', 'b', 'bla', 'bla', 'bla@test.com', '718838c9021dbcf095e9e41271010cb668cacee5', 1);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

View File

@ -21,13 +21,15 @@
"getGroup" "getGroup"
], ],
"group" :[ "cluster" :[
"create", "create",
"link", "link",
"unlink", "unlink",
"getAll", "getAll",
"getById", "getById",
"getByName",
"getMerge",
"getMembers" "getMembers"
] ]

View File

@ -72,7 +72,7 @@
/* [3] Creation du groupe de meme nom que l'username /* [3] Creation du groupe de meme nom que l'username
=========================================================*/ =========================================================*/
$create_group = new Repo('group/create', array($username) ); $create_group = new Repo('cluster/create', array($username) );
$id_group = $create_group->answer(); $id_group = $create_group->answer();
// Si une erreur est retournee, on retourne une erreur // Si une erreur est retournee, on retourne une erreur
@ -84,7 +84,7 @@
/* [4] Association au groupe /* [4] Association au groupe
=========================================================*/ =========================================================*/
$assoc_goup = new Repo('group/link', array($id_user, $id_group)); $assoc_goup = new Repo('cluster/link', array($id_group, $id_user));
$id_assoc = $assoc_goup->answer(); $id_assoc = $assoc_goup->answer();
// Si une erreur est retournee, on retourne une erreur // Si une erreur est retournee, on retourne une erreur

286
manager/repo/cluster.php Executable file
View File

@ -0,0 +1,286 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\repo\machine as machineRepo;
use \manager\repo\user as userRepo;
class cluster{
/* CREATION D'UN GROUPE
*
* @name<String> Nom du groupe
*
* @return id_user<int> Renvoie l'UID du groupe cree
* Renvoie FALSE si une erreur occure
*
*/
public static function create($name){
/* [1] Verification de l'unicite de name
=========================================================*/
$check_unique = ( self::getByName($name) === false );
// Si un groupe a deja ce nom, on renvoie une erreur
if( !$check_unique )
return false;
/* [2] Creation du groupe
=========================================================*/
$insert_user = Database::getPDO()->prepare("INSERT INTO cluster(id_cluster, name)
VALUES(DEFAULT, :name)");
$insert_user->execute(array(
':name' => $name
));
/* [3] On retourne l'id_group ou FALSE si erreur
=========================================================*/
$check_group = self::getByName($name);
// Si n'existe pas on retourne FALSE
if( $check_group === false )
return false;
// Sinon, on retourne son id
return $check_group['id_cluster'];
}
/* ASSOCIATION D'UN(E) UTILISATEUR/MACHINE A UN GROUPE
*
* @id_cluster<int> UID du groupe
* @id_entity<int> UID de la machine ou de l'utilisateur
*
* @return association<int> Renvoie l'UID de l'association cree
* Renvoie FALSE si une erreur occure
*
*/
public static function link($id_cluster, $id_entity){
/* [1] Verification de l'existence du groupe
=========================================================*/
$group_check = self::getById($id_cluster);
// Si le groupe n'existe pas, on retourne ue erreur
if( $group_check === false )
return false;
/* [2] Verification de l'existente de l'entite
=========================================================*/
// On verifie si c'est une machine
$machine_check = machineRepo::getById($id_entity);
$is_machine = ( $machine_check !== FALSE );
// On verifie si c'est un utilisateur
$user_check = userRepo::getById($id_entity);
$is_user = ( $machine_check !== FALSE );
// Si aucune entite existante, on retourne une erreur
if( !$is_machine && !$is_user )
return false;
/* [3] On cree l'association
=========================================================*/
$link_entity = Database::getPDO()->prepare("INSERT INTO cluster_merge(id_cluster_merge, id_cluster, id_entity)
VALUES(DEFAULT, :id_cluster, :id_entity)");
$link_entity->execute(array(
':id_cluster' => $id_cluster,
':id_entity' => $id_entity
));
/* [3] On retourne l'id_cluster_merge ou FALSE si erreur
=========================================================*/
$check_cluster_merge = self::getMerge($id_cluster, $id_entity);
// Si n'existe pas on retourne FALSE
if( $check_cluster_merge === false )
return false;
// Sinon, on retourne son id
return $check_cluster_merge['id_cluster_merge'];
}
/* RENVOIE LA LISTE DE TOUS LES GROUPES
*
* @return groups<Array> Liste des groupes de la BDD
*
*/
public static function getAll(){
// On ecrit la requete
$request = Database::getPDO()->query("SELECT * FROM cluster ORDER BY name");
// On recupere le resultat
$answer = $request->fetchAll();
// On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer );
}
/* RENVOIE LE GROUPE D'ID DONNE
*
* @id<int> UID du groupe en question
*
* @return group<Array> Renvoie le groupe 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 cluster
WHERE id_cluster = :id");
// On execute la requete
$request->execute(array(
':id' => $id
));
// On recupere 1 seul groupe
$answer = $request->fetch();
// Gestion d'erreur -> aucun resultat
if( $answer === false )
return false;
// On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer, true );
}
/* RENVOIE LE GROUPE DE NOM DONNE
*
* @name<String> Nom du groupe en question
*
* @return groupe<Array> Renvoie le groupe de nom donne si existe
* @return error<Boolean> Retourne FALSE si aucun resultat
*
*/
public static function getByName($name){
// On ecrit la requete
$request = Database::getPDO()->prepare("SELECT * FROM cluster
WHERE name = :name");
// On execute la requete
$request->execute(array(
':name' => $name
));
// On recupere 1 seul groupe
$answer = $request->fetch();
// Gestion d'erreur -> aucun resultat
if( $answer === false )
return false;
// On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer, true );
}
/* RENVOIE L'ID D'UNE ASSOCIATION D'UN(E) UTILISATEUR/MACHINE A UN GROUPE
*
* @id_cluster<int> UID du groupe
* @id_entity<int> UID de la machine ou de l'utilisateur
*
* @return association<int> Renvoie l'UID de l'association cree
* Renvoie FALSE si une erreur occure
*
*/
public static function getMerge($id_cluster, $id_entity){
// On ecrit la requete
$request = Database::getPDO()->prepare("SELECT * FROM cluster_merge
WHERE id_cluster = :id_cluster
AND id_entity = :id_entity");
// On execute la requete
$request->execute(array(
':id_cluster' => $id_cluster,
':id_entity' => $id_entity
));
// On recupere 1 seule relation
$answer = $request->fetch();
// Gestion d'erreur -> aucun resultat
if( $answer === false )
return false;
// On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer, true );
}
/* SUPPRIME UN GROUPE DONNE
*
* @id_cluster<int> UID du groupe en question
*
* @return status<Boolean> Retourne si oui ou non le groupe a bien ete supprime
*
*/
public static function delete($id_cluster){
/* [1] On redige/execute la requete
=========================================================*/
$delete_group = Database::getPDO()->prepare("DELETE FROM cluster WHERE id_cluster = :id_cluster");
$delete_group->execute(array(
':id_cluster' => $id_cluster
));
/* [2] On verifie que le groupe n'existe plus
=========================================================*/
return ( self::getById($id_group) === false );
}
}
?>

188
manager/repo/machine.php Normal file
View File

@ -0,0 +1,188 @@
<?php
namespace manager\repo;
use \manager\Database;
use \manager\repo\cluster as clusterRepo;
class machine{
/* CREATION D'UNE MACHINE
*
* @name<String> Nom du groupe
*
* @return id_user<int> Renvoie l'UID du groupe cree
* Renvoie FALSE si une erreur occure
*
*/
public static function create($name){
/* [1] Verification de l'unicite de name
=========================================================*/
$check_unique = ( self::getByName($name) === false );
// Si un groupe a deja ce nom, on renvoie une erreur
if( !$check_unique )
return false;
/* [2] Creation du groupe
=========================================================*/
$insert_user = Database::getPDO()->prepare("INSERT INTO cluster(id_cluster, name)
VALUES(DEFAULT, :name)");
$insert_user->execute(array(
':name' => $name
));
/* [3] On retourne l'id_group ou FALSE si erreur
=========================================================*/
$check_group = self::getByName($name);
// Si n'existe pas on retourne FALSE
if( $check_group === false )
return false;
// Sinon, on retourne son id
return $check_group['id_cluster'];
}
/* RENVOIE LA LISTE DE TOUTES LES MACHINES
*
* @return machine<Array> Liste des machines de la BDD
*
*/
public static function getAll(){
// On ecrit la requete
$request = Database::getPDO()->query("SELECT * FROM machine ORDER BY id_machine");
// On recupere le resultat
$answer = $request->fetchAll();
// On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer );
}
/* RENVOIE LA MACHINE D'ID DONNE
*
* @id<int> Id de la machine en question
*
* @return machine<Array> Renvoie la machine 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 machine
WHERE id_machine = :id");
// On execute la requete
$request->execute(array(
':id' => $id
));
// On recupere 1 seule machine
$answer = $request->fetch();
// Gestion d'erreur -> aucun resultat
if( $answer === false )
return false;
// On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer, true );
}
/* RENVOIE LA MACHINE DE NOM DONNE
*
* @name<String> Nom du groupe en question
*
* @return groupe<Array> Renvoie le groupe de nom donne si existe
* @return error<Boolean> Retourne FALSE si aucun resultat
*
*/
public static function getByName($name){
// On ecrit la requete
$request = Database::getPDO()->prepare("SELECT * FROM cluster
WHERE name = :name");
// On execute la requete
$request->execute(array(
':name' => $name
));
// On recupere 1 seul groupe
$answer = $request->fetch();
// Gestion d'erreur -> aucun resultat
if( $answer === false )
return false;
// On retourne en supprimant les indices numeriques
return Database::delNumeric( $answer, true );
}
/* SUPPRIME UNE MACHINE DONNE
*
* @id_machine<int> UID de la machine en question
*
* @return status<Boolean> Retourne si oui ou non la machine a bien ete supprime
*
*/
public static function delete($id_machine){
/* [1] On redige/execute la requete
=========================================================*/
$delete_machine = Database::getPDO()->prepare("DELETE FROM machine WHERE id_machine = :id_machine");
$delete_machine->execute(array(
':id_machine' => $id_machine
));
/* [2] On verifie que la machine n'existe plus
=========================================================*/
return ( self::getById($id_machine) === false );
}
}
?>

View File

@ -2,6 +2,7 @@
namespace manager\repo; namespace manager\repo;
use \manager\Database; use \manager\Database;
use \manager\repo\cluster as clusterRepo;
class user{ class user{
@ -15,16 +16,44 @@
* @password<String> Mot de passe de l'utilisateur * @password<String> Mot de passe de l'utilisateur
* @status<String> Status de l'utilisateur * @status<String> Status de l'utilisateur
* *
* @return nomRetour<typeRetour> Description du retour * @return id_user<int> Renvoie l'UID de l'utilisateur cree
* Renvoie FALSE si une erreur occure
* *
*/ */
public static function create($code, $username, $firstname, $lastname, $mail, $password, $status){ public static function create($code, $username, $firstname, $lastname, $mail, $password, $status){
/* [1] Creation de l'utilisateur (unicite de l'username) /* [1] Verification de l'unicite de code+username
=========================================================*/ =========================================================*/
$check_unique = ( self::getByCode($code) == false ); $check_unique = ( self::getByCode($code) == false );
$check_unique = $check_unique && ( self::getByUsername($username) == false ); $check_unique = $check_unique && ( self::getByUsername($username) == false );
var_dump($check_unique); // Si un utilisateur a deja ce code ou cet username, on renvoie une erreur
if( !$check_unique )
return false;
/* [2] Creation de l'utilisateur
=========================================================*/
$insert_user = Database::getPDO()->prepare("INSERT INTO user(id_user, code, username, firstname, lastname, mail, password, status)
VALUES(DEFAULT, :code, :username, :firstname, :lastname, :mail, :password, :status)");
$insert_user->execute(array(
':code' => $code,
':username' => $username,
':firstname' => $firstname,
':lastname' => $lastname,
':mail' => $mail,
':password' => $password,
':status' => $status
));
/* [3] On retourne l'id_user ou FALSE si erreur
=========================================================*/
$check_user = self::getByCode($code);
// Si n'existe pas on retourne FALSE
if( $check_user === false )
return false;
// Sinon, on retourne son id
return $check_user['id_user'];
} }
@ -79,7 +108,7 @@
$answer = $request->fetch(); $answer = $request->fetch();
// Gestion d'erreur -> aucun resultat // Gestion d'erreur -> aucun resultat
if( $answer == null ) if( $answer === false )
return false; return false;
// On retourne en supprimant les indices numeriques // On retourne en supprimant les indices numeriques
@ -115,7 +144,7 @@
$answer = $request->fetch(); $answer = $request->fetch();
// Gestion d'erreur -> aucun resultat // Gestion d'erreur -> aucun resultat
if( $answer == null ) if( $answer === false )
return false; return false;
// On retourne en supprimant les indices numeriques // On retourne en supprimant les indices numeriques
@ -153,7 +182,7 @@
$answer = $request->fetch(); $answer = $request->fetch();
// Gestion d'erreur -> aucun resultat // Gestion d'erreur -> aucun resultat
if( $answer == null ) if( $answer === false )
return false; return false;
// On retourne en supprimant les indices numeriques // On retourne en supprimant les indices numeriques

View File

@ -15,7 +15,7 @@
############ ############
- [ ] Gestion des groupes (utilisateurs/machines) - [ ] Gestion des groupes (utilisateurs/machines)
- [x] bdd - [x] bdd
- [ ] Creation d'un groupe individuel pour utilisateurs - [x] Creation d'un groupe individuel pour utilisateurs + association
- [ ] Creation d'un groupe individuel pour machines - [ ] Creation d'un groupe individuel pour machines
- [ ] Creation d'une liaison entre 2 groupes (groupeUtilisateur, groupeMachine) - [ ] Creation d'une liaison entre 2 groupes (groupeUtilisateur, groupeMachine)
- [ ] Prendre en compte au lieu de SERVER['HTTP_HOST'] l'hote et son dossier source - [ ] Prendre en compte au lieu de SERVER['HTTP_HOST'] l'hote et son dossier source
@ -39,6 +39,10 @@
######## ########
# FAIT # # FAIT #
######## ########
- [x] [manager/repo/]Creation des repos
- [x] [user] utilisateur
- [x] [machine] machines
- [x] [cluster] groupes
- [x] [view/][view] Ajout de "use CLASS;" - [x] [view/][view] Ajout de "use CLASS;"
- [x] Ajout de "use CLASS;" dans les fichiers pour simplifier la lisibilite - [x] Ajout de "use CLASS;" dans les fichiers pour simplifier la lisibilite
- [x] [phpunit/sessionManager] test unitaires du manager de session php - [x] [phpunit/sessionManager] test unitaires du manager de session php