En dehors du passage du { à la ligne, j'ai un peu de mal avec l'organisation des commentaires de Thibaut.
Ce qu'il indique en haut devrait avoir plus de place avant la fonction (ce sont des observations générales - licence, spécifications externes - qui n'ont rien à faire dans le code lui-même ; en outre, il gagnerait peut-être à utiliser un bloc de commentaires plutôt qu'une succession de lignes.
(Sinon, voilà le début d'un fichier ; il y aurait encore beaucoup de choses à améliorer - en particulier, il faut que je me mette à phpDocumentation - mais au moins, je trouve ça clair)
/* ---------------------- */
/* -- DEBUT DU FICHIER -- */
/* ---------------------------------------------------------------- */
/* Scripts de gestion d'authentification LDAP */
/* (c) 2005 Centre de Ressources Informatiques - XXXXXXXXXXXX */
/* (c) 2006 Centre de Ressources Informatiques - XXXXXXXXXXXX */
/* Jxxxxxxx Dxxxx, portions Fxxxxxxx */
/* Certains scripts sont basés sur les scripts Perl d'Idealix.org */
/* la fonction fputcsv est tirée du site www.php.net */
/* ---------------------------------------------------------------- */
require_once 'CHAP.php';
require_once 'ldap_connect.php' ;
require_once 'globals.php' ;
$hash = new Crypt_CHAP_MSv2();
//Variables définies en "dur"
//TODO : les passer à l'état de constantes et les migrer vers constantes.php
$org = "IUFM Lyon";
$dir = "/home/";
$unix_group = 513;
$shell = "/bin/null" ; //"/bin/bash" si on veut autoriser l'authentification Unix;
$time = time();
/* ----------------------------------------------------------
/* Gestion des groupes LDAP
/* ------------------------
/*
/* Les groupes LDAP ne sont pas vraiment des groupes au sens où on pourrait l'entendre.
/* Un utilisateur est affecté à un groupe si son attribut 'description' a pour valeur l'intitulé du groupe.
/* Un groupe ne peut être qu'un alphanumérique. Le caractère souligné est toléré.
/*
/* Liste des fonctions de gestion :
/*
/* group_create($groupe) : crée un groupe (ajoute $groupe à l'attribut 'description' de root)
/* group_syntax($groupe) : vérifie que $groupe est un alphanumérique débutant par un alpha uniquement. Le caractère souligné est toléré.
/* group_exist($groupe) : retourne 1 si le groupe existe, 0 sinon
/* group_purge($groupe) : supprime tous les membres d'un groupe, même s'ils appartiennent aussi à un autre groupe, puis supprime la valeur $groupe des attributs 'description' de l'utilisateur root
/* group_list() : retourne la liste des groupes sous forme d'un tableau à une entrée
/* group_users($group) : retourne la liste des utilisateurs d'un groupe donné sous forme d'un tableau
/* group_delete($group) : supprie l'existence d'un groupe de la liste gérée par root
/*
/* ----------------------------------------------------------*/
/* group_syntax($groupe) : vérifie que $groupe est un alphanumérique débutant par un alpha uniquement. Le caractère souligné est toléré.
/* Requiert : rien
/* Vérifie : la syntaxe de la chaine $groupe (un alpha, suivi d'au moins un aphanumérique ou d'un souligné
/* Retourne : 1 si la variable vérifie l'expression régulière
/* 0 sinon
*/
function group_syntax($groupe)
{
if (!$groupe)
{
return 0 ;
}
$preg_matchGroup = "(^[A-Za-z]+[A-Za-z0-9\-_-]+$)";
if (preg_match($preg_matchGroup, $groupe))
{
return 1;
}
return 0;
}
(par contre, c'est rigolo ces merdes au niveau des tabulations... dans mon source ce sont bien des tabs, mais elles ne sont pas converties de façon homogènes lors d'un c/c ?!)