Nouvelle classe Membre, différente. D'autres modifs....

This commit is contained in:
Mysaa
2021-06-06 12:54:42 +02:00
parent 38ec48c9fc
commit e59898b0bb
42 changed files with 2006 additions and 455 deletions
+244 -3
View File
@@ -6,7 +6,7 @@ $me = Membre::me();
TODO add $_GET['p'] => should return on $_SESSION ['current_error'] (0) or via echo (1)
*/
function exiting($message,$location='register.php'){
function exiting($message,$location='index.php'){
header ( 'Location:' . $location );
$_SESSION ['current_error'] = $message;
exit;
@@ -26,8 +26,8 @@ switch ($_GET ['action']) {
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&egrave;res autoris&eacute;s sont :<br/>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_');
if (preg_match ( "#^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\\-_&éèàùçµ\"\\#'{}()[\\]|\\^@°+=\$¤£*!§:/;.,?²]+$#", $_POST ['mdp'] ))
exiting('Le mot de passe fut incorrect : Les seuls caract&egrave;res autoris&eacute;s sont :<br/>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_&&eacute;&egrave;&agrave;&ugrave;&ccedil;&mu;"#\'{}()[]|^@°+=$¤£*!§:/;.,?²');
if (preg_match ( "#^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\\-_&\"\\#'{}()[\\]|\\^@+=\$*!:/;.,?]+$#", $_POST ['mdp'] ))
exiting('Le mot de passe fut incorrect : Les seuls caract&egrave;res autoris&eacute;s sont :<br/>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_&&eacute;&egrave;&agrave;&ugrave;&ccedil;&mu;"#\'{}()[]|^@+=$*!:/;.,?');
$out = Membre::registerPerson ($_POST ['pseudo'],$_POST ['mdp']);
if($out ===Membre::USED_USERNAME)
@@ -162,12 +162,253 @@ switch ($_GET ['action']) {
flush ();
exit;
case 'getPeopleList' :
//Action : get projest'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&eacute;tinale, digitale et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)';
exit;
}
$projet = new Projet($_GET ['p']);
if(!$projet->exists()){
echo 'Quand on demande des donn&eacute;es, on donne des donn&eacute;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 ();
exit;
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&eacute;tinale, digital et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)');
$projet = new Projet($_GET['p']);
if(!$projet->exists())
exiting('Je vais avoir du mal &agrave; supprimer un des propri&eacute;taires du projet n&eacute;ant ...');
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
exiting('Vous n\'&ecirc;tes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propritaire 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);
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&eacute;tinale, digital et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)');
$projet = new Projet($_GET['p']);
if(!$projet->exists())
exiting('Je vais avoir du mal &agrave; ajouter un propri&eacute;taires au projet n&eacute;ant ...');
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
exiting('Vous n\'&ecirc;tes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propritaire 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&eacute;"d\'un projet !!!');
if(!$me->connect($_SESSION['session_mdp']))
exiting('Votre empreinte r&eacute;tinale, digital et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)');
$projet = new Projet($_GET['p']);
if(!$projet->exists())
exiting('Je vais avoir du mal &agrave; ajouter un propri&eacute;taires au projet n&eacute;ant ...');
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
exiting('Vous n\'&ecirc;tes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propritaire du projet');
$projet->setPublicy($_POST ['publicy'] == 'true');
echo 'ok';
exit;
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&eacute;taire d\'un projet !!!');
if(!$me->connect($_SESSION['session_mdp']))
exiting('Votre empreinte r&eacute;tinale, digital et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)');
$projet = new Projet($_GET['p']);
if(!$projet->exists())
exiting('Je vais avoir du mal &agrave; changer le propri&eacute;taires au projet n&eacute;ant ...');
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
exiting('Vous n\'&ecirc;tes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propritaire du projet');
$membre = new Membre($_POST ['nOwnerID']);
if(!$membre->exists())
exiting('Nous sommes hereux d\'acceuillir n&eacute;ant , le touveau propri&eacute;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;
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&eacute;tinale, digital et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)');
$projet = new Projet($_GET['p']);
if(!$projet->exists())
exiting('Je vais avoir du mal &agrave; supprimer le projet n&eacute;ant ...');
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
exiting('Vous n\'&ecirc;tes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propritaire du projet');
$projet->delete();
echo 'ok';
exit;
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&eacute;tinale, digitale et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)';
exit;
}
$projet = new Projet($_GET ['p']);
if(!$projet->exists()){
echo 'Quand on demande des donn&eacute;es, on donne des donn&eacute;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 ();
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&eacute;tinale, digital et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)');
$projet = new Projet($_GET['p']);
if(!$projet->exists())
exiting('Je vais avoir du mal &agrave; ajouter une version au projet n&eacute;ant ...');
if(!($me->getID() == $projet->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
exiting('Vous n\'&ecirc;tes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propri&eacute;taire du projet');
//TODO make auto version_abs sorting according to $_POST ['insertIndex']
//TODO verify tags and langage
$projet->newVersion($_POST ['name'],Langage::getFromName($_POST ['langage']),$_POST ['tags'],Version::getHighestFromProject($projet)->getVersionAbs()+1);
//TODO do a REAL redirection (not to the highest)
echo 'www.bernard.890m.com/version.php?v=' . Version::getHighestFromProject($projet)->getID();
exit;
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 &eacute;diter une version !!!');
if(!$me->connect($_SESSION['session_mdp']))
exiting('Votre empreinte r&eacute;tinale, digital et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)');
$version = new Version($_GET['v']);
if(!$version->exists())
exiting('Je vais avoir du mal &agrave; &eacute;diter la version n&eacute;ant ...');
if(!($me->getID() == $version->getProject()->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
exiting('Vous n\'&ecirc;tes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propri&eacute;taire du projet');
//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);
//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&eacute;tinale, digital et g&eacute;netique ne correspond pas &agrave; celles stoqu&eacute;es dans notre base de donn&eacute;es (Technologie &agrave; venir)');
$version = new Version($_GET['p']);
if(!$version->exists())
exiting('Je vais avoir du mal &agrave; supprimer la version n&eacute;ant ...');
if(!($me->getID() == $version->getProject()->getOwner()->getID() OR $me->isAdminLevelGreaterThan(13)))
exiting('Vous n\'&ecirc;tes pas assez PUISSANT !!!!!!!!!! (Faut un adminLevel de 13 ou plus OU etre propri&eacute;taire du projet');
$version->delete();
echo 'ok';
exit;