53Fermer55
NilLe 06/05/2008 à 15:28
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 ?!)