NOUVELLE VERSION !!! Des nouvelles classes de partout, et des supers procédures SQL.
This commit is contained in:
+331
-339
@@ -1,14 +1,21 @@
|
||||
<?php
|
||||
session_start ();
|
||||
include_once 'clazz/Zincluder.php';
|
||||
$me = Membre::me();
|
||||
/*
|
||||
TODO add $_GET['p'] => should return on $_SESSION ['current_error'] (0) or via echo (1)
|
||||
*/
|
||||
|
||||
function exiting($message,$location='index.php'){
|
||||
if($message instanceof SQLProcessingException){
|
||||
echo $message->getMessage();
|
||||
$_SESSION ['current_error'] = $message->getHtmlMessage();
|
||||
}else if($message instanceof Exception){
|
||||
echo $message->getMessage();
|
||||
$_SESSION ['current_error'] = htmlSpecialChars($message->getMessage());
|
||||
}else{
|
||||
$_SESSION ['current_error'] = $message;
|
||||
}
|
||||
header ( 'Location:' . $location );
|
||||
$_SESSION ['current_error'] = $message;
|
||||
exit;
|
||||
}
|
||||
|
||||
@@ -18,406 +25,391 @@ if (! isset ( $_GET ['action'] ))
|
||||
|
||||
|
||||
switch ($_GET ['action']) {
|
||||
case 'disconnect' :
|
||||
|
||||
unset($_SESSION['session_id']);
|
||||
unset($_SESSION['session_mdp']);
|
||||
|
||||
header('Location:index.php');//TODO lastpageredirection
|
||||
$_SESSION['current_error'] = 'La déconnexion se sera correctement passée!';
|
||||
|
||||
exit;
|
||||
|
||||
case 'register' :
|
||||
//Action : register
|
||||
if (!(isset ( $_POST ['pseudo'] ) && isset ( $_POST ['mdp'] ) && isset ( $_POST ['mdp2'] )))
|
||||
exiting('Quand on demande des données, on donne des données !!!');
|
||||
if ($_POST ['mdp'] === $_POST ['mdp2'])
|
||||
exiting('Tu auras du rentrer deux fois le même mot de passe (tu permet aussi de rendre le champs "Recopier le mot de passe" utile)');
|
||||
if (preg_match ( "#^[a-zA-Z0-9\\-_]+$#", $_POST ['pseudo'] ))
|
||||
exiting('Le pseudo sera incorrect : Les seuls caractères autorisés sont :<br/>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_');
|
||||
if (preg_match ( "#^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\\-_&�����\"\\#'{}()[\\]|\\^@�+=\$��*!�:/;.,?�]+$#", $_POST ['mdp'] ))
|
||||
exiting('Le mot de passe fut incorrect : Les seuls caractères autorisés sont :<br/>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_&éèàùçμ"#\'{}()[]|^@�+=$��*!�:/;.,?�');
|
||||
$pseudo = $_POST ['pseudo'] ?? NULL;
|
||||
$mdp = $_POST ['mdp'] ?? NULL;
|
||||
$mdp2 = $_POST ['mdp2'] ?? NULL;
|
||||
|
||||
$out = Membre::registerPerson ($_POST ['pseudo'],$_POST ['mdp']);
|
||||
if($out ===Membre::USED_USERNAME)
|
||||
exiting('Le pseudonyme est déjà utilisé (par une entité differente de vous)');
|
||||
exiting('Vous avez déjà été correctement inscrit sur bernard.com','login.php');
|
||||
try{
|
||||
assert($pseudo,new MissingDataException('pseudo','POST'));
|
||||
assert($mdp,new MissingDataException('mdp','POST'));
|
||||
assert($mdp2,new MissingDataException('mdp2','POST'));
|
||||
assert($mdp===$mdp2,new DataException('mdp and mdp2 should be equal'));
|
||||
|
||||
Membre::registerPerson ($pseudo,$mdp);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(Utility::SUCESSFULLY_REGISTERED,'login.php');
|
||||
|
||||
case 'login' :
|
||||
//Action : login
|
||||
if (!( isset ( $_POST ['pseudo'] ) && isset ( $_POST ['mdp'] ) ))
|
||||
exiting('Quand on demande des données, on donne des données !!!');
|
||||
$me = Membre::getFromPseudo($_POST['pseudo']);
|
||||
if(!$me)
|
||||
exiting('Kikètvou ? Pseudo inconnu ...');
|
||||
if(!$me->connect($_POST ['mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$_SESSION['session_id'] = $me->getID();
|
||||
$_SESSION['session_mdp'] = $_POST['mdp'];
|
||||
exiting('Vous êtes bien connecté (vous l\'avez été et le serez également)!');
|
||||
$pseudo = $_POST ['pseudo'] ?? NULL;
|
||||
$mdp = $_POST ['mdp'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($pseudo,new MissingDataException('pseudo','POST'));
|
||||
assert($mdp,new MissingDataException('mdp','POST'));
|
||||
$_SESSION['session_id'] = Membre::checkLogin ($pseudo,$mdp);
|
||||
$_SESSION['session_mdp'] = $mdp;
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(Utility::SUCESSFULLY_LOGGED_IN,'index.php');//TODO Do a "previousContentPageRedirection"
|
||||
|
||||
case 'changePassword' :
|
||||
//Action : change password
|
||||
if(!(isset($_POST['rmdp']) && isset($_POST['nmdp']) && isset($_POST['nmdp2'])))
|
||||
exiting('Quand on demande des données, on donne des données !!!');
|
||||
if(!$me)
|
||||
exiting('Si tu ne te connectes pas, comment veut tu que je sache quel mot de passe changer !');
|
||||
if(!$me->connect($_POST['rmdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
if($_POST['nmdp'] !== $_POST['nmdp2'])
|
||||
exiting('Tu auras du rentrer deux fois le même mot de passe (tu permet aussi de rendre le champs "Recopier le mot de passe" utile)');
|
||||
$out = $me->changePassword($_POST['nmdp']);
|
||||
if($out == Membre::PASSWORD_TOO_LONG)
|
||||
exiting('Mot de passe ≠ roman (255 caractères maximum)');
|
||||
exiting('Vos dispositifs d\'identification ont été correctement changés');
|
||||
|
||||
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$rmdp = $_POST ['rmdp'] ?? NULL;
|
||||
$mdp = $_POST ['nmdp'] ?? NULL;
|
||||
$mdp2 = $_POST ['nmdp2'] ?? NULL;
|
||||
|
||||
var_dump($_POST);
|
||||
|
||||
try{
|
||||
assert($rmdp,new MissingDataException('rmdp','POST'));
|
||||
assert($mdp,new MissingDataException('mdp','POST'));
|
||||
assert($mdp2,new MissingDataException('mdp2','POST'));
|
||||
assert($mdp===$mdp2,new DataException('mdp and mdp2 should be equal'));
|
||||
|
||||
Membre::changePassword ($sid,$rmdp,$mdp);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
exiting(Utility::SUCESSFULLY_CHANGED_PASSWORD,'login.php');
|
||||
|
||||
case 'createDiscussion' :
|
||||
//Action : create discussion
|
||||
if(!isset($_POST['name']))
|
||||
exiting('Quand on demande des données, on donne des données !!!');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour acceder à cette section !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
if($me->isAdminLevelLowerThan(2))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 2 ou plus)');
|
||||
|
||||
$out = Discussion::createDiscussion($_POST ['name'],$_SESSION ['session_id']);
|
||||
if($out === Discussion::NAME_ALREADY_USED)
|
||||
exiting('Mince j\'ai déjà utilisé l\'écriteau avec ce nom ... t\'en as pas un autre ?');
|
||||
if($out === Discussion::ILLEGAL_NAME)
|
||||
exiting('Y a des trucs qui ne me plaisent pas dans le nom que tu as donné à ta discussion ...<br/>Je n\'accepte que les caractères abcdefghijklmnopqrstuvwxyz<wbr/>ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<wbr/>éèàμ_-\'()[\\]\\\\/<wbr/>,;:.§!ù%£$¤=+-*\\#~"|ç@');
|
||||
if($out === Discussion::TOO_LONG_NAME)
|
||||
exiting('Nom de discussion ≠ roman (255 caractères maximum)');
|
||||
exiting('C\'est fait !!! (la création de ta discussion bien sûr)');
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$name = $_POST ['name'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeededException());
|
||||
assert($rmdp,new MissingDataException('rmdp','POST'));
|
||||
assert($mdp,new MissingDataException('mdp','POST'));
|
||||
assert($mdp2,new MissingDataException('mdp2','POST'));
|
||||
|
||||
$did = Discussion::createDiscussion ($sid,$mdp,$name);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(Utility::SUCESSFULLY_CREATED_DISCUSSION,'discut.php?d='.$did);
|
||||
|
||||
case 'postMessage' :
|
||||
//Action : post message
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour acceder à cette section !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting($me.'Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$discussion = new Discussion($_GET ['d']);
|
||||
if(!$discussion->exists())
|
||||
exiting('Pour des raisons d\'intégrité du site, nous avons décidé de ne pas autoriser les messages dans les discussions inexistantes (pour les superadmins, c\'est possible en forcant la bdd &128516; )');
|
||||
if(!$discussion->canAccess($me))
|
||||
exiting('Tu pensais que tu pouvais écrire des messages dans une discussion à laquelle tu n\'as pas accès !!! Tu te crois où ?');
|
||||
Message::sendMessage($me,$discussion,$_POST ['msg']);
|
||||
exiting(NULL,'discut.php?d='.$discussion->getID());
|
||||
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$did = $_GET ['d'] ?? NULL;
|
||||
$text = $_POST ['msg'] ?? NULL;
|
||||
|
||||
var_dump($text);
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($did,new MissingDataException('d','GET'));
|
||||
assert($text,new MissingDataException('text','POST'));
|
||||
|
||||
Message::postMessage ($sid,$mdp,$did,$text);
|
||||
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(NULL,'discut.php?d='.$did);
|
||||
|
||||
case 'deleteMessage' :
|
||||
//Action : delete message
|
||||
if(!isset($_GET ['m']))
|
||||
exiting('c');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour supprimer un message !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$message = new Message($_GET['m']);
|
||||
if(!$message->exists())
|
||||
exiting('Je vais avoir du mal à supprimer le message n&ecute;ant ...');
|
||||
if($me->isAdminLevelLowerThan(6) && $me->getID() !== $message->getSender()->getID())
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 6 ou plus OU etre l\'auteur de ce message');
|
||||
$message->removeMessage();
|
||||
exiting(NULL,'discut.php?d='.$message->getDiscussion()->getID());
|
||||
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$mid = $_GET ['m'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($mid,new MissingDataException('m','GET'));
|
||||
|
||||
$did = Message::deleteMessage ($sid,$mdp,$mid);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(NULL,'discut.php?d='.$did);
|
||||
case 'editVersion' :
|
||||
//Action : edit version
|
||||
if(!isset($_GET ['v']))
|
||||
exiting('Quand on demande des données, on donne des données !!!');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour éditer une version !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$version = new Version($_GET['v']);
|
||||
if(!$version->exists())
|
||||
exiting('Je vais avoir du mal à éditer la version n&ecute;ant ...');
|
||||
if($me->isAdminLevelLowerThan(13) && $version->getProject()->haveRights($me))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 6 ou plus OU etre un des pocesseurs du projet');
|
||||
//TODO concretly modify the version, with all the options (remove included)
|
||||
exit;
|
||||
// Data : name langage tags insertIndex -> facultatifs
|
||||
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$v = $_GET['v'] ?? NULL;
|
||||
|
||||
$name = $_POST['name'] ?? NULL;
|
||||
$langage = $_POST['langage'] ?? NULL;
|
||||
$tags = $_POST['tags'] ?? NULL;
|
||||
$insertIndex = $_POST['insertIndex'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeededException());
|
||||
assert($v,new MissingDataException('v','GET'));
|
||||
|
||||
Version::editVersion ($sid,$mdp,$v,$name,$langage,$tags,$insertIndex);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(Utility::SUCESSFULLY_CHANGED_PASSWORD,'login.php');
|
||||
|
||||
|
||||
case 'getDiscutsMessages' :
|
||||
//Action : get discut's messages
|
||||
//TODO precise output type (via $_GET)
|
||||
$query = 'SELECT m.ID AS messageID,u.ID AS senderID, u.pseudo AS pseudo, m.texte AS texte, m.sendTime AS sendTime, UNIX_TIMESTAMP(m.sendTime) AS sendTimestamp FROM users AS u INNER JOIN messages AS m ON u.ID = m.senderID WHERE m.discussion_id=?';
|
||||
|
||||
$data = array ();
|
||||
if(!isset($_GET ['d'])){
|
||||
echo 'ERROR : NO DISCUSSION PROVIDED';
|
||||
exit;
|
||||
}
|
||||
if($me?!$me->connect($_SESSION['session_mdp']):FALSE){
|
||||
echo 'Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)';
|
||||
exit;
|
||||
}
|
||||
$discut = new Discussion($_GET ['d']);
|
||||
if(!$discut->exists()){
|
||||
echo 'Quand on demande des données, on donne des données !!!';
|
||||
exit;
|
||||
}
|
||||
$messages = Utility::arrayIfNot(Message::getFromDiscussion($discut));
|
||||
$jmsgs = array();
|
||||
foreach($messages as $message){
|
||||
$jmsg = array();
|
||||
$jmsg['messageID'] = $message->getID();
|
||||
$jmsg['senderID'] = $message->getSender()->getID();
|
||||
$jmsg['pseudo'] = $message->getSender()->getPseudo();
|
||||
$jmsg['texte'] = $message->getText();
|
||||
$jmsg['sendTime'] = $message->getSendDate();
|
||||
$jmsg['sendTimestamp'] = strToTime($message->getSendDate());
|
||||
$jmsg['rights'] = ($me)? $message->getSender()->getID() == $me->getID() || $me->isAdminLevelGreaterThan(5):FALSE;
|
||||
array_push($jmsgs,$jmsg);
|
||||
}
|
||||
|
||||
echo json_encode ( $jmsgs );
|
||||
flush ();
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$did = $_GET ['did'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeededException());
|
||||
assert($did,new MissingDataException('did','GET'));
|
||||
|
||||
$jmsgs = Discussion::getMessages ($sid,$mdp,$did);
|
||||
echo json_encode ( $jmsgs );
|
||||
flush ();
|
||||
exit;
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
exit;
|
||||
|
||||
case 'getPeopleList' :
|
||||
//Action : get projest's secondary owners
|
||||
//Action : get project's secondary owners
|
||||
//TODO precise output type (via $_GET)
|
||||
$data = array ();
|
||||
if(!isset($_GET ['p'])){
|
||||
echo 'ERROR : NO PROJECT PROVIDED';
|
||||
exit;
|
||||
}
|
||||
if($me?!$me->connect($_SESSION['session_mdp']):FALSE){
|
||||
echo 'Votre empreinte rétinale, digitale et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)';
|
||||
exit;
|
||||
}
|
||||
$projet = new Projet($_GET ['p']);
|
||||
if(!$projet->exists()){
|
||||
echo 'Quand on demande des données, on donne des données !!!';
|
||||
exit;
|
||||
}
|
||||
$owners = $projet->getSecondaryOwners();
|
||||
$jmsgs = array();
|
||||
foreach($owners as $owner){
|
||||
$jmsg = array();
|
||||
$jmsg['ID'] = $owner->getID();
|
||||
$jmsg['pseudo'] = $owner->getPseudo();
|
||||
array_push($jmsgs,$jmsg);
|
||||
}
|
||||
|
||||
echo json_encode ( $jmsgs );
|
||||
flush ();
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$pid = $_GET ['p'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeededException());
|
||||
assert($pid,new MissingDataException('pid','GET'));
|
||||
|
||||
$secondaryOwners = Projet::getSecondaryOwners ($sid,$mdp,$pid);
|
||||
$jsowns = array();
|
||||
foreach($secondaryOwners as $sOwner){
|
||||
$jsown = array();
|
||||
$jsown['ID'] = $sOwner['ID'];
|
||||
$jsown['pseudo'] = $sOwner['pseudo'];
|
||||
array_push($jsowns,$jsown);
|
||||
}
|
||||
|
||||
echo json_encode ( $jsowns );
|
||||
flush ();
|
||||
exit;
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
exit;
|
||||
|
||||
case 'removePeople' :
|
||||
|
||||
case 'removePeople' :
|
||||
//Action : remove secodary owner
|
||||
if(!isset($_GET ['p']))
|
||||
exiting('c');
|
||||
if(!isset($_POST ['peopleIDs']))
|
||||
exiting('o');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour supprimer un secondary owner !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$projet = new Projet($_GET['p']);
|
||||
if(!$projet->exists())
|
||||
exiting('Je vais avoir du mal à supprimer un des propriétaires du projet néant ...');
|
||||
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propri�taire du projet');
|
||||
$todIDs = explode(',',$_POST ['peopleIDs']);
|
||||
$sowners = $projet->getSecondaryOwners();
|
||||
$nsowners = array();;
|
||||
foreach($sowners as $sowner)if(!in_array($sowner->getID(),$todIDs))$nsowners[] = $sowner;
|
||||
$projet->setSecondaryOwners($nsowners);
|
||||
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$pid = $_GET ['pid'] ?? NULL;
|
||||
$peopleIDs = $_POST['peopleIDs'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($pid,new MissingDataException('pid','GET'));
|
||||
|
||||
$did = Projet::removeSecondaryOwner ($sid,$mdp,$pid,explode(',',$peopleIDs));
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(NULL,'projet.php?p='.$pid);
|
||||
|
||||
exit;
|
||||
|
||||
case 'addPeople' :
|
||||
//Action : add secodary owner
|
||||
if(!isset($_GET ['p']))
|
||||
exiting('c');
|
||||
if(!isset($_POST ['peopleName']))
|
||||
exiting('o');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour ajouter un secondary owner !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$projet = new Projet($_GET['p']);
|
||||
if(!$projet->exists())
|
||||
exiting('Je vais avoir du mal à ajouter un propriétaires au projet néant ...');
|
||||
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propri�taire du projet');
|
||||
$membre = Membre::getFromPseudo($_POST ['peopleName']);
|
||||
if(count($membre) != 1)
|
||||
exiting('Vous voulez ajouter QUI ?!!');
|
||||
$projet->addSecondaryOwner($membre);
|
||||
exit;
|
||||
|
||||
case 'setPublicy' :
|
||||
//Action : set project publicy
|
||||
if(!isset($_GET ['p']))
|
||||
exiting('c');
|
||||
if(!isset($_POST ['publicy']))
|
||||
exiting('o');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous connecter pour changer la "publicité"d\'un projet !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$projet = new Projet($_GET['p']);
|
||||
//Action : add secondary owner
|
||||
|
||||
if(!$projet->exists())
|
||||
exiting('Je vais avoir du mal à ajouter un propriétaires au projet néant ...');
|
||||
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propri�taire du projet');
|
||||
$projet->setPublicy($_POST ['publicy'] == 'true');
|
||||
echo 'ok';
|
||||
exit;
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$pid = $_GET ['pid'] ?? NULL;
|
||||
$personName = $_POST['personName'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($pid,new MissingDataException('pid','GET'));
|
||||
assert($pid,new MissingDataException('personName','POST'));
|
||||
|
||||
$did = Projet::addSecondaryOwner ($sid,$mdp,$pid,explode(',',$personName));
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(NULL,'projet.php?p='.$pid);
|
||||
|
||||
case 'nameOwner' :
|
||||
//Action : name a new Owner
|
||||
if(!isset($_GET ['p']))
|
||||
exiting('c');
|
||||
if(!isset($_POST ['nOwnerID']))
|
||||
exiting('o');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous connecter pour changer le propriétaire d\'un projet !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$projet = new Projet($_GET['p']);
|
||||
if(!$projet->exists())
|
||||
exiting('Je vais avoir du mal à changer le propriétaires au projet néant ...');
|
||||
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propri�taire du projet');
|
||||
$membre = new Membre($_POST ['nOwnerID']);
|
||||
if(!$membre->exists())
|
||||
exiting('Nous sommes hereux d\'acceuillir néant , le touveau propriétaire !!! Euh ...');
|
||||
$projet->setOwner($membre);
|
||||
$todIDs = $membre->getID();
|
||||
$sowners = $projet->getSecondaryOwners();
|
||||
$nsowners = array();
|
||||
foreach($sowners as $sowner)if($sowner->getID() != $todIDs)$nsowners[] = $sowner;
|
||||
$projet->setSecondaryOwners($nsowners);
|
||||
$projet->addSecondaryOwner($me);
|
||||
|
||||
echo 'ok';
|
||||
exit;
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$pid = $_GET ['pid'] ?? NULL;
|
||||
$personId = $_POST['personId'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($pid,new MissingDataException('pid','GET'));
|
||||
assert($personId,new MissingDataException('personId','POST'));
|
||||
|
||||
Projet::nameOwner ($sid,$mdp,$pid,explode(',',$personId));
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(NULL,'projet.php?p='.$pid);
|
||||
|
||||
|
||||
case 'delProject' :
|
||||
//Action : delete this project
|
||||
if(!isset($_GET ['p']))
|
||||
exiting('c');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour supprimer un projet !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$projet = new Projet($_GET['p']);
|
||||
if(!$projet->exists())
|
||||
exiting('Je vais avoir du mal à supprimer le projet néant ...');
|
||||
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propri�taire du projet');
|
||||
$projet->delete();
|
||||
echo 'ok';
|
||||
exit;
|
||||
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$pid = $_GET ['pid'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($pid,new MissingDataException('pid','GET'));
|
||||
|
||||
Projet::removeProject ($sid,$mdp,$pid);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(NULL,'projets.php');
|
||||
|
||||
|
||||
case 'getVersionList' :
|
||||
//Action : get project's versions
|
||||
//TODO precise output type (via $_GET)
|
||||
$data = array ();
|
||||
if(!isset($_GET ['p'])){
|
||||
echo 'ERROR : NO PROJECT PROVIDED';
|
||||
exit;
|
||||
}
|
||||
if($me?!$me->connect($_SESSION['session_mdp']):FALSE){
|
||||
echo 'Votre empreinte rétinale, digitale et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)';
|
||||
exit;
|
||||
}
|
||||
$projet = new Projet($_GET ['p']);
|
||||
if(!$projet->exists()){
|
||||
echo 'Quand on demande des données, on donne des données !!!';
|
||||
exit;
|
||||
}
|
||||
$versions = Version::getFromProject($projet);
|
||||
$jmsgs = array();
|
||||
foreach($versions as $version){
|
||||
$jmsg = array();
|
||||
$jmsg['id'] = $version->getID();
|
||||
$jmsg['name'] = $version->getName();
|
||||
$jmsg['versionAbs'] = $version->getVersionAbs();
|
||||
array_push($jmsgs,$jmsg);
|
||||
}
|
||||
|
||||
echo json_encode ( $jmsgs );
|
||||
flush ();
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$pid = $_GET ['p'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeededException());
|
||||
assert($pid,new MissingDataException('pid','GET'));
|
||||
|
||||
$versions = Version::getFromProject ($sid,$mdp,$pid);
|
||||
$jvs = array();
|
||||
foreach($versions as $version){
|
||||
$jv = array();
|
||||
$jv['ID'] = $version['ID'];
|
||||
$jv['name'] = $version['pseudo'];
|
||||
$jv['versionAbs'] = $version['versionAbs'];
|
||||
array_push($jvs,$jv);
|
||||
}
|
||||
|
||||
echo json_encode ( $jvs );
|
||||
flush ();
|
||||
exit;
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
exit;
|
||||
|
||||
|
||||
case 'createVersion' :
|
||||
//Action : add secodary owner
|
||||
if(!isset($_GET ['p']))
|
||||
exiting('c');
|
||||
if(!isset($_POST ['name']))
|
||||
exiting('o');
|
||||
if(!isset($_POST ['langage']))
|
||||
exiting('q');
|
||||
if(!isset($_POST ['tags']))
|
||||
exiting('m');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour ajouter une version !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$projet = new Projet($_GET['p']);
|
||||
if(!$projet->exists())
|
||||
exiting('Je vais avoir du mal à ajouter une version au projet néant ...');
|
||||
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propriétaire du projet');
|
||||
//Action : add new version
|
||||
|
||||
//TODO make auto version_abs sorting according to $_POST ['insertIndex']
|
||||
//TODO verify tags and langage
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$pid = $_GET ['pid'] ?? NULL;
|
||||
$name = $_POST ['name'] ?? NULL;
|
||||
$tags = $_POST ['tags'] ?? NULL;
|
||||
$language = $_POST ['language'] ?? NULL;
|
||||
$insertIndex = $_POST ['insertIndex'] ?? NULL;
|
||||
|
||||
$projet->newVersion($_POST ['name'],Langage::getFromName($_POST ['langage']),$_POST ['tags'],Version::getHighestFromProject($projet)->getVersionAbs()+1);
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($pid,new MissingDataException('pid','GET'));
|
||||
assert($text,new MissingDataException('name','POST'));
|
||||
assert($text,new MissingDataException('tags','POST'));
|
||||
assert($text,new MissingDataException('language','POST'));
|
||||
|
||||
//TODO do a REAL redirection (not to the highest)
|
||||
echo 'www.bernard.890m.com/version.php?v=' . Version::getHighestFromProject($projet)->getID();
|
||||
exit;
|
||||
|
||||
$vid = Version::createVerion ($sid,$mdp,$pid,$name,$tags,$language,$insertIndex);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(NULL,'version.php?v='.$vid);
|
||||
|
||||
case 'editVersion' :
|
||||
//Action : add secodary owner
|
||||
if(!isset($_GET ['v']))
|
||||
exiting('c');
|
||||
if(!isset($_POST ['name']))
|
||||
exiting('o');
|
||||
if(!isset($_POST ['langage']))
|
||||
exiting('q');
|
||||
if(!isset($_POST ['tags']))
|
||||
exiting('m');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour éditer une version !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$version = new Version($_GET['v']);
|
||||
if(!$version->exists())
|
||||
exiting('Je vais avoir du mal à éditer la version néant ...');
|
||||
if(!($me->getID() == $version->getProject()->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propriétaire du projet');
|
||||
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$vid = $_GET ['vid'] ?? NULL;
|
||||
$name = $_POST ['name'] ?? NULL;
|
||||
$tags = $_POST ['tags'] ?? NULL;
|
||||
$language = $_POST ['language'] ?? NULL;
|
||||
$insertIndex = $_POST ['insertIndex'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($pid,new MissingDataException('vid','GET'));
|
||||
assert($text,new MissingDataException('name','POST'));
|
||||
assert($text,new MissingDataException('tags','POST'));
|
||||
assert($text,new MissingDataException('language','POST'));
|
||||
|
||||
$vid = Version::editVerion ($sid,$mdp,$vid,$name,$tags,$language,$insertIndex);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
//TODO make auto version_abs sorting according to $_POST ['insertIndex']
|
||||
//TODO verify tags and langage
|
||||
|
||||
$projet->editVersion($version,$_POST ['name'],Langage::getFromName($_POST ['langage']),$_POST ['tags'],Version::getHighestFromProject($projet)->getVersionAbs()+1);
|
||||
exiting(NULL,'version.php?v='.$vid);
|
||||
|
||||
//TODO do a REAL redirection (not to the highest)
|
||||
echo 'www.bernard.890m.com/version.php?v=' . Version::getHighestFromProject($projet)->getID();
|
||||
exit;
|
||||
|
||||
case 'delVersion' :
|
||||
//Action : delete this version
|
||||
if(!isset($_GET ['p']))
|
||||
exiting('c');
|
||||
if(!$me)
|
||||
exiting('Veuillez vous identifier pour supprimer une version !!!');
|
||||
if(!$me->connect($_SESSION['session_mdp']))
|
||||
exiting('Votre empreinte rétinale, digital et génetique ne correspond pas à celles stoquées dans notre base de données (Technologie à venir)');
|
||||
$version = new Version($_GET['p']);
|
||||
if(!$version->exists())
|
||||
exiting('Je vais avoir du mal à supprimer la version néant ...');
|
||||
if(!($me->getID() == $version->getProject()->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
|
||||
exiting('Vous n\'êtes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propriétaire du projet');
|
||||
$version->delete();
|
||||
echo 'ok';
|
||||
exit;
|
||||
|
||||
$sid = $_SESSION ['session_id'] ?? NULL;
|
||||
$mdp = $_SESSION ['session_mdp'] ?? NULL;
|
||||
$vid = $_GET ['vid'] ?? NULL;
|
||||
|
||||
try{
|
||||
assert($sid,new LoginNeddedException());
|
||||
assert($pid,new MissingDataException('vid','GET'));
|
||||
|
||||
$pid = Version::removeVersion ($sid,$mdp,$vid);
|
||||
}catch(Exception $e){
|
||||
exiting($e);
|
||||
}
|
||||
|
||||
exiting(NULL,'projet.php?p=' . $pid);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user