bcom/admin.php
Mysaa 38ec48c9fc Maintenant, tout dans le executor.php. Fin de tempPreMega.
Ajout d'un super simulateur de tours de Monoï dans la page 404.
2021-06-06 12:48:11 +02:00

307 lines
16 KiB
PHP
Raw Blame History

<?php
session_start ();
include_once 'clazz/Zincluder.php';
if( !isset($_SESSION ['session_id']) or !isset($_SESSION ['session_mdp']) ) {
header ( 'Location:401.php' );
exit ();
}
$me = new Membre ( $_SESSION ['session_id'] );
$me->connect ( $_SESSION ['session_mdp'] );
if ($me->isAdminLevelLowerThan ( 15 )) {
header ( 'Location:401.php' );
exit ();
}
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="css/adminStyle.css"/>
<meta charset="utf-8"/>
<title>La console d'admin</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>jQuery.fn.extend({disable: function(state){return this.each(function(){this.disabled=state;});}});</script>
<section class="commander">
<div class="commanderCommandSelector">
Commande :
<select id="commandSelector">
<option value="get" selected="true">get</option>
<option value="set">set</option>
<option value="remove">remove</option>
<option value="add">add</option>
<option value="bdd">bdd</option>
</select><br/>
</div>
<div class="commander" id="getCommander" style="display: block;">
<label for="getCommanderCibleSelector">Cible :</label>
<input type="text" id="getCommanderCibleSelector" alt="Un selecteur" title="Un selecteur"/>
</div>
<div class="commander" id="setCommander" style="display: none;">
<label for="setCommanderCibleSelector">Cible :</label>
<input type="text" id="setCommanderCibleSelector" alt="Un selecteur" title="Un selecteur"/><br/>
<label for="setCommanderAttributeSelector">Attribut :</label>
<input type="text" id="setCommanderAttributeSelector" alt="Un nom d'attribut" title="Un nom d'attribut"/><br/>
<label for="setCommanderValeurSelector">Valeur :</label>
<input type="text" id="setCommanderValeurSelector" alt="Une valeur" title="Une valeur"/><br/>
</div>
<div class="commander" id="addCommander" style="display: none;">
Sujet :
<select id="addClassSelector">
<option value="membre" selected="true">Membre</option>
<option value="discussion">Discussion</option>
<option value="message">Message</option>
<option value="projet">Projet</option>
<option value="version">Version</option>
</select><br/>
<div class="addDivAttribute" id="addDivAttributeMembre" style="display: block;">
<span>Pseudo :<input type="text" class="addCommanderAttribute pseudo" alt="Un pseudonyme valide" title="Un pseudonyme valide"/></span><br/>
<span>Mot de passe :<input type="text" class="addCommanderAttribute mdp" alt="Un mot de passe valide" title="Un mot de passe valide"/></span><br/>
<span>Email :<input type="text" class="addCommanderAttribute email" alt="Une adresse mail valide (outrepasse la v<>rification)" title="Une adresse mail valide (outrepasse la v&eacute;rification)"/></span><br/>
<span class="facultatif">Date de cr&eacute;ation :<input type="text" class="addCommanderAttribute dateCreation" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te"/></span><br/>
<span class="facultatif">Banni&egrave;re :<input type="text" class="addCommanderAttribute banniere" alt="Un chemin vers une image, si vide, alors utilise la banni&egrave;re de base" title="Un chemin vers une image, si vide, alors utilise la banni&egrave;re de base"/></span><br/>
<span class="facultatif">Message :<input type="text" class="addCommanderAttribute message" alt="Une chaine de caract&egrave;res, si vide, aucun message ne sera affich<63>" title="Une chaine de caract&egrave;res, si vide, aucun message ne sera affich&eacute;"/></span><br/>
</div>
<div class="addDivAttribute" id="addDivAttributeDiscussion" style="display: none;">
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de discussion valide" title="Un nom de discussion valide"/></span><br/>
<span>Cr&eacute;ateur :<input type="text" class="addCommanderAttribute createur" alt="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)" title="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)"/></span><br/>
<span class="facultatif">Date de cr&eacute;ation :<input type="text" class="addCommanderAttribute dateCreation" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te"/></span><br/>
<span class="facultatif">Autorisations :<input type="text" class="addCommanderAttribute autorisations" alt="Une chaine de la forme permission :&#10;a10 -> niveau d'administration &ge; 10&#10;p -> pas de restrictions&#10;x13,35,87 -> autorise les membres &agrave; l'ID &eacute;gal &agrave; 13, 35 ou 87&#10;Si vide, publique" title="Une chaine de la forme permission :&#10;a10 -> niveau d'administration &ge; 10&#10;p -> pas de restrictions&#10;x13,35,87 -> autorise les membres &agrave; l'ID &eacute;gal &agrave; 13, 35 ou 87&#10;Si vide, publique"/></span><br/>
</div>
<div class="addDivAttribute" id="addDivAttributeMessage" style="display: none;">
<span>Texte :<input type="text" class="addCommanderAttribute texte" alt="Un texte de message" title="Un texte de message"/></span><br/>
<span>Sender :<input type="text" class="addCommanderAttribute sender" alt="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)" title="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)"/></span><br/>
<span>Discussion :<input type="text" class="addCommanderAttribute discussion" alt="Un selecteur de discussion ou un nombre (ID de la discussion)" title="Un selecteur de discussion ou un nombre (ID de la discussion)"/></span><br/>
<span class="facultatif">Date d'envoi :<input type="text" class="addCommanderAttribute dateEnvoi" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de r&eacute;ception de la requ&ecirc;te"/></span><br/>
</div>
<div class="addDivAttribute" id="addDivAttributeProjet" style="display: none;">
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de projet valide" title="Un nom de projet valide"/></span><br/>
<div class="pocesseur">
<span>Pocesseur :<input type="text" class="addCommanderAttribute pocesseur" alt="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)" title="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)"/></span><br/>
<button id="addProjetAddPocesseur">Ajouter un pocesseur</button><br/>
</div>
<span class="facultatif">Permissions :<input type="text" class="addCommanderAttribute permissions" alt="Quatre bits pour les permissions, si vide: 1000" title="Quatre bits pour les permissions, si vide: 1000"/></span><br/>
</div>
<div class="addDivAttribute" id="addDivAttributeVersion" style="display: none;">
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de version valide" title="Un nom de version valide"/></span><br/>
<span>Projet :<input type="text" class="addCommanderAttribute projet" alt="Un selecteur de projet ou un nombre (ID du projet)" title="Un selecteur de projet ou un nombre (ID du projet)"/></span><br/>
<span class="facultatif">Version absolue :<input type="text" class="addCommanderAttribute versionAbsolue" alt="Un nombre pour trier les versions, si vide, le nombre suivant la plus grande valeur de version absolue pour toute les versions de ce projet" title="Un nombre pour trier les versions, si vide, le nombre suivant la plus grande valeur de version absolue pour toute les versions de ce projet"/></span><br/>
<span class="facultatif">Langage :<input type="text" class="addCommanderAttribute langage" alt="Un nombre correspondant au langage de programmation&#10;0->Java&#10;1->VBA&#10;Si vide, 0 s&eacute;lectionn&eacute; (Java)" title="Un nombre correspondant au langage de programmation&#10;0->Java&#10;1->VBA&#10;Si vide, 0 s&eacute;lectionn&eacute; (Java)"/></span><br/>
</div>
</div>
<div class="commander" id="removeCommander" style="display: none;">
<label for="removeCommanderSelector">Cible :</label>
<input type="text" id="removeCommanderSelector" alt="Un selecteur" title="Un selecteur"/>
</div>
<div class="commander" id="bddCommander" style="display: none;">
Action :
<select id="bddActionSelector">
<option value="sort" selected="true">Sort</option>
<option value="save">Save</option>
<option value="retieve">Retieve</option>
</select><br/>
</div>
</section>
<script type="text/javascript">
function updateCommandSelector(){
$('div.commander').hide();
switch($('#commandSelector').val()){
case 'get':
$('#getCommander').show();
break;
case 'set':
$('#setCommander').show();
break;
case 'add':
$('#addCommander').show();
break;
case 'remove':
$('#removeCommander').show();
break;
case 'bdd':
$('#bddCommander').show();
break;
}
}
$('#commandSelector').change(updateCommandSelector);
function updateAddCommandClassSelector(){
$('div.addDivAttribute').hide();
switch($('#addClassSelector').val()){
case 'membre':
$('#addDivAttributeMembre').show();
break;
case 'discussion':
$('#addDivAttributeDiscussion').show();
break;
case 'message':
$('#addDivAttributeMessage').show();
break;
case 'projet':
$('#addDivAttributeProjet').show();
break;
case 'version':
$('#addDivAttributeVersion').show();
break;
}
}
$('#addClassSelector').change(updateAddCommandClassSelector);
updateCommandSelector();
updateAddCommandClassSelector();
function addProjetAddPocesseur(){
$('#addProjetAddPocesseur').before('<span>Pocesseur :<input type="text" class="addCommanderAttribute pocesseur" alt="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)" title="Un s&eacute;l&eacute;cteur de membre ou un nombre (ID du membre)"/></span>');
$($('#addProjetAddPocesseur').prev().children()[0]).keyup(updateCommandOutput);
$('#addProjetAddPocesseur').before('<button class="addProjetRemovePocesseur">-</button>')
$('#addProjetAddPocesseur').prev().click(addProjetRemovePocesseur);
$('#addProjetAddPocesseur').before('<br/>');
updateCommandOutput();
}
$('#addProjetAddPocesseur').click(addProjetAddPocesseur);
function addProjetRemovePocesseur(e){
$(e.target).prev().remove();
$(e.target).next().remove();
$(e.target).remove();
updateCommandOutput();
}
$('.addProjetRemovePocesseur').click(addProjetRemovePocesseur);
var commandMode = 'gui';
function switchCommandMode(){
}
$('#switchMode').click(switchCommandMode);
</script>
<script>
var command = "";
var allRequiredFieldsFilled = false;
function updateCommandOutput(e){
switch($('#commandSelector').val()){
case 'get':
var cible = $('#getCommanderCibleSelector').val();
command = 'GET' + ' ' + cible;
allRequiredFieldsFilled = !!cible;
break;
case 'set':
var cible = $('#setCommanderCibleSelector').val();
var attribut = $('#setCommanderAttributeSelector').val();
var valeur = $('#setCommanderValeurSelector').val();
allRequiredFieldsFilled = !!cible && !!attribut && !!valeur;
command = 'SET' + ' ' + cible + ' ' + attribut + ' ' + valeur;
break;
case 'remove':
var cible = $('#removeCommanderSelector').val();
command = 'REMOVE' + ' ' + cible;
allRequiredFieldsFilled = !!cible;
break;
case 'add':
command = 'ADD ' + $('#addClassSelector').val() + ' ';
switch($('#addClassSelector').val()){
case 'membre':
var pseudo = $('#addDivAttributeMembre > span > .pseudo').val();
var mdp = $('#addDivAttributeMembre > span > .mdp').val();
var email = $('#addDivAttributeMembre > span > .email').val();
var dateCreation = $('#addDivAttributeMembre > span > .dateCreation').val();
var banniere = $('#addDivAttributeMembre > span > .banniere').val();
var message = $('#addDivAttributeMembre > span > .message').val();
command += 'pseudo "' + pseudo + '"' + ' mdp "' + mdp + '"' + ' email "' + email + '"' + ((dateCreation!='')?' dateCreation "' + dateCreation + '"' : '') + ((banniere!='')?' banniere "' + banniere + '"' : '') + ((message!='')?' message "' + message + '"' : '');
allRequiredFieldsFilled = !!pseudo && !!mdp && !!email;
break;
case 'discussion':
var nom = $('#addDivAttributeDiscussion > span > .nom').val();
var createur = $('#addDivAttributeDiscussion > span > .createur').val();
var dateCreation = $('#addDivAttributeDiscussion > span > .dateCreation').val();
var autorisations = $('#addDivAttributeDiscussion > span > .autorisations').val();
command += 'nom "' + nom + '"' + ' createur ' + ((createur!='')?createur:'???') + '' + ((dateCreation!='')?' dateCreation "' + dateCreation + '"' : '') + ((autorisations!='')?' autorisations "' + autorisations + '"' : '');
allRequiredFieldsFilled = !!nom && !!createur;
break;
case 'message':
var texte = $('#addDivAttributeMessage > span > .texte').val();
var sender = $('#addDivAttributeMessage > span > .sender').val();
var discussion = $('#addDivAttributeMessage > span > .discussion').val();
var dateEnvoi = $('#addDivAttributeMessage > span > .dateEnvoi').val();
command += 'texte "' + texte + '"' + ' sender ' + ((sender!='')?sender:'???') + ' discussion ' + ((discussion!='')?discussion:'???') + ((dateEnvoi!='')?' dateEnvoi "' + dateEnvoi + '"' : '');
allRequiredFieldsFilled = !!texte && !!sender && !!discussion;
break;
case 'projet':
var nom = $('#addDivAttributeProjet > span > .nom').val();
var permissions = $('#addDivAttributeProjet > span > .permissions').val();
pocesseurs = [];
$('.addCommanderAttribute.pocesseur').each(function(i) {
if($(this).val() != "")pocesseurs.push($(this).val());
});
command += 'nom "' + nom + '"' + ((permissions!='')?' permissions "' + permissions + '"' : '') + ' pocesseurs [ ' + pocesseurs.join(' ') +' ]';
allRequiredFieldsFilled = !!nom && pocesseurs.length > 0;
break;
case 'version':
var nom = $('#addDivAttributeVersion > span > .nom').val();
var projet = $('#addDivAttributeVersion > span > .projet').val();
var versionAbsolue = $('#addDivAttributeVersion > span > .versionAbsolue').val();
var langage = $('#addDivAttributeVersion > span > .langage').val();
command += 'nom "' + nom + '"' + ' projet ' + ((projet!='')?projet:'???') + ((versionAbsolue!='')?' versionAbsolue ' + versionAbsolue:'') + ((langage!='')?' langage ' + langage:'');
allRequiredFieldsFilled = !!nom && !!projet;
}
break;
case 'bdd':
var action = $('#bddActionSelector').val();
command = 'BDD' + ' ' + action;
allRequiredFieldsFilled = true;
break;
}
$('#send').disable(!allRequiredFieldsFilled);
$('#currentCommand').text(command);
}
$('select').change(updateCommandOutput);
$('input[type="text"]').keyup(updateCommandOutput);
</script>
<br/>
<section>
Commande :&laquo;<span id="currentCommand">...</span>&raquo;
<button id="send">Envoyer la requ&ecirc;te</button>
<button id="switchMode">Passer en mode commande</button>
</section>
<br/>
<section class="reponce">
<h3>Dialogue :</h3>
<samp id="adminDialogAnswer">
Hello !!!<br />
</samp>
</section>
<footer>
<h5>Syntaxes :</h5>
GET selector<br/>
SET selector attributeName value<br/>
REMOVE selector<br/>
ADD class attributeName attributeValue attributeName attributeValue<br/>
</footer>
</body>
</html>