$form .= "<select name='action' size=1>\n";
$form .= " <option value='settime'>Mettre à l'heure le serveur</option>\n";
$form .= " <option value='halt'>Arrêter le serveur</option>\n";
$form .= " <option value='reboot'>Redémarrer le serveur</option>\n";
$form .= " <option value='update'>Faire une mise a jour système</option>\n";
$form .= " <option value='synchro_mdp'>Synchro mot de passe admin (mode sans échec)</option>\n";
$form .= "</select>\n";
$form.='<input name="jeton" type="hidden" value="'.md5($_SESSION['token'].htmlentities($_SERVER['PHP_SELF'])).'" />';
$form.="<input type=\"submit\" value=\"Valider\">\n";
$form.="</form>\n";
echo $form;
} else {
// Traitement de l'action.
echo "<h3>Traitement de l'action $action sur le serveur LCS</h3>\n";
$Subject="[LCS Tàche d'administration] $action\n";
list($user,$groups)=people_get_variables("admin", true);
$to = $user["email"];
$From = "root@$domain";
$Subject ="\nCR d'action sur serveur LCS\n";
$Body = $Subject;
$Body.= "L'action $action \n";
$Body.= $commandes."\n";
// Execution de l'action sur le serveur
if ( $action == "synchro_mdp" ) {
$pass = urldecode( xoft_decode($_COOKIE['LCSuser'],$key_priv) );
# Verify decode pass
if ( user_valid_passwd ( "admin", $pass ) ) {
# reencode temporarily pass with openssl
$cryptpass = exec ("echo ". escapeshellarg($pass) ." | openssl aes-256-cbc -a -salt -pass pass:$key_priv");
exec ("/usr/bin/sudo /usr/share/lcs/scripts/action.sh 'synchro_mdp' '$cryptpass'" , $AllOutput, $ReturnValue);
} else $ReturnValue="1";
开发者ID:rhertzog,项目名称:lcs,代码行数:31,代码来源:action.php
示例3: authenticate_lcs
private function authenticate_lcs() {
/*
include LCS_PAGE_AUTH_INC_PHP;
include LCS_PAGE_LDAP_INC_PHP;
# LCS a besoin de quelques variables extérieures...
# L'initialisation ci-dessous n'est pas très propre, il faudra
# reprendre ça...
*/
global $login;
$DBAUTH = $GLOBALS['DBAUTH'];
$HTTP_COOKIE_VARS = $GLOBALS['HTTP_COOKIE_VARS'];
$authlink = $GLOBALS['authlink'];
$dbHost = $GLOBALS['dbHost'];
$dbUser = $GLOBALS['dbUser'];
$dbPass = $GLOBALS['dbPass'];
$dbDb = $GLOBALS['dbDb'];
if ($login!="") {
list($user, $groups)=people_get_variables($login, false);
#TODO: Utiliser les infos des lignes ci-dessous pour mettre à jour
# les informations de l'utilisateur dans la base.
$lcs_tab_login["nom"] = $user["nom"];
$lcs_tab_login["email"] = $user["email"];
$long = mb_strlen($user["fullname"]) - mb_strlen($user["nom"]);
$lcs_tab_login["fullname"] = mb_substr($user["fullname"], 0, $long) ;
// A ce stade, l'utilisateur est authentifié
// Etablir à nouveau la connexion à la base
if (isset($GLOBALS['db_nopersist']) && !$GLOBALS['db_nopersist'])
$db_c = ($GLOBALS["mysqli"] = mysqli_connect($dbHost, $dbUser, $dbPass));
else
$db_c = ($GLOBALS["mysqli"] = mysqli_connect($dbHost, $dbUser, $dbPass));
if (!$db_c || !((bool)mysqli_query($GLOBALS["mysqli"], "USE $dbDb"))) {
echo "\n<p>Erreur : Echec de la connexion à la base de données";
exit;
}
$this->login = $login;
$this->current_auth_mode = "sso";
return true;
exit;
} else {
// L'utilisateur n'a pas été identifié'
header("Location:".LCS_PAGE_AUTHENTIF);
exit;
}
}
/**
* infosUser() :
*@type : function
*@param : $login (login user)
*@param : $idpers (idpers user)
*@return : Object (infos utilisateur)
*/
function infosUser($login, $pwchg)
{
if ($login != "") {
// les infos ldap
list($user, $groups) = people_get_variables($login, true);
$_usr = $user;
$_usr["login"] = isset($login) ? $login : 'default';
//le login du user
$_usr["idpers"] = "x";
// idpers on s'en fou
$_usr["pwchg"] = $pwchg ? "N" : "Y";
// password modifié ?
$_usr["jeton"] = "&jeton=" . md5($_SESSION['token'] . htmlentities("/Annu/group.php"));
//test listes de diffusion
//@boulet@ la je ne comprends pas tout
exec("/bin/grep \"#<listediffusionldap>\" /etc/postfix/mailing_list.cf", $AllOutPut, $ReturnValueShareName);
$listediff = 0;
if (count($AllOutPut) >= 1) {
$listediff = 1;
}
// fin test listes de diffusion
// infos de connexion
// a passer en chaine de langue l
// revoir aussi le message de changement de mot de passe a deplacer
// et aussi changer le message d'invite dans lcs-web
//section supprimee par mrfi
// les groupes
if (count($groups)) {
$dirIcn = "../data/";
$co = $ma = $eq = $di = $cl = 0;
$tbl_gp = array("Administratifs", "Profs", "Eleves");
$ptrn = array('Classe', 'Cours', 'Equipe', 'Matiere');
for ($loop = 0; $loop < count($groups); $loop++) {
$gex = explode('_', $groups[$loop]["cn"]);
$g = preg_replace('/ /', '', $gex[0]);
// si on est admin
if ($groups[$loop]["cn"] == "admins") {
// on passe Admin en "faux" groupe principal
$_usr['grps']['gp'] = 'Admins';
// et le reste dans Autres
$_usr['grps']['Autres'][$loop] = $groups[$loop]["cn"];
} else {
if (in_array($groups[$loop]["cn"], $tbl_gp)) {
$_usr['grps']['gp'] = preg_replace('/ /', '', $gex[0]);
} else {
if (in_array($g, $ptrn)) {
$_usr['grps'][$g][] = preg_replace('/$g/', ' ', $groups[$loop]["cn"]);
} else {
$_usr['grps']['Autres'][] = $groups[$loop]["cn"];
}
}
}
// Teste si nécessité d'affichage menu Ouverture/Fermeture Bdd et espace web perso des Eleves
// A confirmer .. is't ok, misterfi ?
if ($groups[$loop]["cn"] == "Eleves") {
$ToggleAff = 1;
}
}
} else {
$_usr['grps']['gp'] = 'Attention! Vous n\'appartenez à aucun groupe';
}
} else {
$_usr['idpers'] = "x";
}
return $_usr;
}
<td>
</tr>
<tr>
<td colspan="3">
<br />
<b><u>Changer le propriétaire</u> :</b><!-- Set Owner:-->
<select name="newowner">
<option value="">Ne rien modifier</option><!-- Don't change-->
<option value=""></option>
<?php
if ($users = $this->LoadUsers())
{
foreach($users as $user)
{
//ajout des noms et prénoms à partir de la fonction LCS people_get_variables()
list($uti, $groups) = people_get_variables($user["name"],false);
echo "<option value=\"",htmlentities($user["name"]),"\">",$uti["fullname"],"</option>\n";
}
}
?>
</select>
<td>
</tr>
</table>
<br /><br />
<center>
<input type="submit" value="Enregistrer" style="width: 120px" accesskey="s"><!-- Store ACLs-->
<input type="button" value="Annuler" onclick="history.back();" style="width: 120px"><!-- Cancel -->
</center>
</form>
开发者ID:rhertzog,项目名称:lcs,代码行数:30,代码来源:lcs_acls.php
示例9: createGroups
function createGroups($grname)
{
if (($grname=="Equipe") || ($grname=="Classe")) {
//Liste des équipes
$grname = $grname._;
$groupes = search_uids ("(cn=$grname*)","half");
for ( $x=0; $x<count($groupes); $x++)
{
$groupe=$groupes[$x]["cat"]._.$groupes[$x]["group"];
$login=$groupes[$x]["uid"];
if (! $login) echo "<br /><b>ATTENTION</b> un login est vide : cela arrive notamment quand vous avez un membre dans le groupe $groupe qui ne correspond pas à un utilisateur valide dans la branche PEOPLE de LDAP. Mais ceci n'a pas empêché la bonne réalisation de l'opération. <br />";
elseif ($this->UserInGroup($groupe, $user = $login))
echo "$login déjà associé <br />";
else $this->Query("INSERT INTO ".$this->config["table_prefix"]."groups (grname,grmember) values('$groupe','$login')");
}
echo "<br /><b>La création des groupes ".substr($grname,0,strlen($grname)-1)."s"." a été réalisée</b><br />";
}
else {
$users=search_uids ("cn=$grname","full");
//Création effective
for ($x=0;$x<count($users);$x++)
{
$uid=$users[$x]["uid"];
list($user,$groups)=people_get_variables($uid, false);
$login=$user["uid"];
$mail=$user["email"];
//Insertion de l'utilisateur
if (! $login){}
elseif ($this -> loadUser($login))
echo "<br /> $login existe déjà dans la base de données <br />";
else $this->Query("INSERT INTO ".$this->config["table_prefix"]."users (name,email) values('$login','$mail')");
//Association avec le groupe
if (! $login) echo "<br /><b>ATTENTION</b> un login est vide : cela arrive notamment quand vous avez un membre dans le groupe $grname qui ne correspond pas à un utilisateur valide dans la branche PEOPLE de LDAP. Mais ceci n'a pas empêché la bonne réalisation de l'opération.<br />";
elseif ($this->UserInGroup($grname, $user = $login))
echo "$login déjà associé <br>";
else $this->Query("INSERT INTO ".$this->config["table_prefix"]."groups (grname,grmember) values('$grname','$login')");
}
echo "<br /><b>La création du groupe $grname et des utilisateurs correspondants a été réalisée</b><br />";
}
}
include("connexion_mysql.php");
//pour pouvoir utiliser la fonction LCS people_get_variables pour récupérer le nom et le prenom des utilisateurs
include "/var/www/lcs/includes/headerauth.inc.php";
include "/var/www/Annu/includes/ldap.inc.php";
if((isset($_POST['idCat']))&&($_POST['idCat'] != "0")){
$idcat = $_POST['idCat'];
echo "Liste des élèves de cette classe : ";
echo "<select multiple id=\"sous_categorie\" name=\"sous_categorie\">";
$res = mysql_query("SELECT grmember FROM ".$prefix."groups WHERE grname=\"".$_POST['idCat']."\" ORDER BY grmember",$link);
while ($row = mysql_fetch_assoc($res)){
list($user, $groups) = people_get_variables($row["grmember"], false);
echo "<option value='".$row["grmember"]."'>".$user["fullname"]." (".$row["grmember"].")</option>";
}
echo "</select>";
echo "<br /><br />";
echo "<b><u>Quel(s) droit(s) souhaitez vous modifier</u> ? (cochez la ou les cases correspondantes)</b>";
echo "<br />";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo "<tr>";
echo "<td valign=\"top\" style=\"padding-right: 20px\"> ";
echo "<input type=\"radio\" name=\"lect\" value=\"aut\" >autoriser la lecture <br/>";
echo "<input type=\"radio\" name=\"lect\" value=\"ref\" >refuser la lecture <br/>";
echo "</td>";
请发表评论