Changeset 50


Ignore:
Timestamp:
02/21/06 23:29:45 (7 years ago)
Author:
anarcat
Message:

[project @ alternc: changeset 2003-04-19 13:44:32 by benjamin]
Ajout d'un verrouillage des pages AlternC par sémaphore. Commentaires
DoxyGen? pour m_stat m_mysql m_hta

Original author: benjamin
Date: 2003-04-19 13:44:33

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • bureau/class/config.php

    r18 r50  
    11<?php 
    22/* 
    3  $Id: config.php,v 1.3 2003/03/28 15:32:13 root Exp $ 
     3 $Id: config.php,v 1.4 2003/04/19 13:44:33 benjamin Exp $ 
    44 ---------------------------------------------------------------------- 
    55 AlternC - Web Hosting System 
     
    2828 ---------------------------------------------------------------------- 
    2929*/ 
     30 
     31/* Toutes les pages du bureau passent ici. On utilise une sémaphore pour  
     32   s'assurer que personne ne pourra accéder à 2 pages du bureau en même temps. 
     33*/ 
     34// 1. Get a semaphore id for the alternc magic number (18577) 
     35$alternc_sem = sem_get ( 18577 ); 
     36// 2. Declare the shutdown function, that release the semaphore 
     37function alternc_shutdown() { 
     38  global $alternc_sem; 
     39  sem_release( $alternc_sem ); 
     40} 
     41// 3. Register the shutdown function  
     42register_shutdown_function("alternc_shutdown"); 
     43// 4. Acquire the semaphore : with that process,  
     44sem_acquire( $alternc_sem ); 
     45 
    3046 
    3147 
  • bureau/class/m_hta.php

    r1 r50  
    11<?php 
    22/* 
    3  $Id: m_hta.php,v 1.1.1.1 2003/03/26 17:41:29 root Exp $ 
     3 $Id: m_hta.php,v 1.2 2003/04/19 13:44:33 benjamin Exp $ 
    44 ---------------------------------------------------------------------- 
    55 AlternC - Web Hosting System 
     
    2828 ---------------------------------------------------------------------- 
    2929*/ 
     30/** 
     31* Classe de gestion des dossiers protégés par .htaccess apache 
     32*  
     33* Cette classe permet de gérer les dossiers protégés par login/pass 
     34* par le système .htaccess d'apache. 
     35* Copyleft {@link http://alternc.net/ AlternC Team} 
     36*  
     37* @copyright    AlternC-Team 2002-11-01 http://alternc.net/ 
     38*  
     39*/ 
    3040class m_hta { 
    3141 
    32   var $mid=0;         /* Membre dont on souhaite gérer les acces web restreints */ 
    33   var $error=0;       /* Code erreur retourné par tout appel de fonction */ 
    34  
    35  
    36   /* **************************************************************************** 
    37      m_webaccess([$mid]) Constructeur de la classe m_webaccess, initialise le membre 
    38   *****************************************************************************/ 
     42  /** Membre dont on souhaite gérer les accès restreints */ 
     43  var $mid=0; 
     44 
     45  /*---------------------------------------------------------------------------*/ 
     46  /** 
     47   * Constructeur de la classe m_webaccess, initialise le membre 
     48   * @param integer $membre Numéro du membre courant 
     49   */ 
    3950  function m_webaccess($membre=0) { 
    4051    $this->mid=$membre; 
    4152  } 
    42   function errstr() { 
    43     return $this->errstrings[$this->error]; 
    44   } 
    45  
    46   /* **************************************************************************** 
    47      CreateDir() Créé le dossier à protéger le .htaccess et le .htpassword 
    48   *****************************************************************************/ 
     53 
     54  /*---------------------------------------------------------------------------*/ 
     55  /** 
     56   * Crée un dossier à protéger (.htaccess et .htpasswd) 
     57   * @param string $dir Répertoire relatif au dossier de l'utilisateur  
     58   * @return boolean TRUE si le dossier a été protégé avec succès, FALSE sinon 
     59   */ 
    4960  function CreateDir($dir) { 
    5061    global $mem,$bro,$err; 
     
    5869      mkdir($absolute,00777); 
    5970    } 
    60  
    6171    if (!file_exists("$absolute/.htaccess")) { 
    6272      touch("$absolute/.htaccess"); 
     
    6777      fclose($file); 
    6878    } 
    69     /*  else { 
    70         if (!_reading_htaccess($absolute)) { 
    71         return false; 
    72         } 
    73         } 
    74     */ 
    7579    if (!file_exists("$absolute/.htpasswd")) { 
    7680      touch("$absolute/.htpasswd"); 
    7781      return true; 
    7882    } 
    79  
    80     return true; 
    81  
    82   } 
    83  
    84  
    85   /* **************************************************************************** 
    86      _Reading_htaccess($absolute) Vérifie la validité des ligne d'un .htaccess existant. 
    87      Retourne TRUE si chaque ligne lut correspond égale à: 
    88      "ErrorDocument  ..." 
    89      ou "RewriteRule ..." 
    90      ou "chaine vide" 
    91      ou "AuthUserFile chemin_absolu/.htpasswd" 
    92      ou "AuthName "Zone Protégée"") 
    93      ou "AuthType Basic" 
    94      sinon, le fichier est incompatible, on retourne FALSE 
    95      $absolute est le chemin absolu vers le repertoire courant 
    96   *****************************************************************************/ 
    97   function _reading_htaccess($absolute) { 
    98     global $err; 
    99     $err->log("hta","_reading_htaccess",$absolute); 
    100     $file = fopen("$absolute/.htaccess","r+"); 
    101     $lignes=array(1,1,1); 
    102     $errr=0; 
    103  
    104     while (!feof($file) && !$errr) { 
    105       $s=fgets($file,1024); 
    106       if (substr($s,0,14)!="ErrorDocument " && substr($s,0,12)!="RewriteRule " && substr($s,0,14)!="RewriteEngine " && trim($s)!="") { 
    107         $errr=1; 
    108       } 
    109  
    110       if (strtolower(trim($s))==strtolower("authuserfile $absolute/.htpasswd")) { 
    111         $lignes[0]=0; 
    112         $errr=0; 
    113       } // authuserfile 
    114  
    115       if (strtolower(trim($s))=="require valid-user") { 
    116         $lignes[1]=0; 
    117         $errr=0; 
    118       } //require 
    119  
    120       if (strtolower(trim($s))=="authtype basic") { 
    121         $lignes[2]=0; 
    122         $errr=0; 
    123       } //authtype 
    124  
    125     } // Reading config file 
    126     fclose($file); 
    127  
    128     if ($errr ||  in_array(0,$lignes)) { 
    129       $err->raise("hta",1); 
    130       return false; 
    131     } 
    132     return true; 
    133   }  
    134  
    135   /* **************************************************************************** 
    136      ListDir() Retourne la liste de tous les dossier de l'utilisateur contenant un .htpassword 
    137   *****************************************************************************/ 
     83    return true; 
     84  } 
     85 
     86  /*---------------------------------------------------------------------------*/ 
     87  /** 
     88   * Retourne la liste de tous les dossiers de l'utilisateur contenant un .htpasswd 
     89   * @return array Tableau contenant la liste des dossiers protégés de l'utilisateur  
     90   */ 
    13891  function ListDir() { 
    13992    global $err,$mem; 
     
    14699      return false; 
    147100    } 
    148  
    149101    for ($i=0;$i<count($sortie);$i++){ 
    150102      preg_match("/^\/var\/alternc\/html\/.\/[^\/]*\/(.*)\/\.htpasswd/", $sortie[$i], $matches); 
     
    154106  } 
    155107 
    156   /* **************************************************************************** 
    157      is_protected($dir) Retourne true si le dossier en question est protégé 
    158      false sinon 
    159   *****************************************************************************/ 
     108  /*---------------------------------------------------------------------------*/ 
     109  /** 
     110   * Retourne TRUE si le dossier paramètre est protégé. 
     111   * @param string $dir Dossier dont on souhaite vérifier la protection 
     112   * @return TRUE si le dossier est protégé, FALSE sinon 
     113   */ 
    160114  function is_protected($dir){ 
    161115    global $mem,$err; 
     
    163117    $absolute="/var/alternc/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]."/$dir"; 
    164118    $sortie=array(); 
    165  
    166119    if (file_exists("$absolute/.htpasswd")){ 
    167120      return true; 
     
    172125  } 
    173126 
    174   /* **************************************************************************** 
    175      get_hta_detail() Retourne la liste des utilisateurs/mots de passe autorisé dans le dossier 
    176   *****************************************************************************/ 
     127  /*---------------------------------------------------------------------------*/ 
     128  /** 
     129   * Retourne la liste des utilisateurs autorisés dans le dossier 
     130   * @param string $dir Dossier dont on souhaite obtenir la liste des user/pass 
     131   * @return array Tableau contenant la liste des logins du .htpasswd ou FALSE. 
     132   */ 
    177133  function get_hta_detail($dir) { 
    178134    global $mem,$err; 
     
    201157  } 
    202158 
    203   /* **************************************************************************** 
    204      DelDir($dir) Déprotège un dossier un dossier 
    205   *****************************************************************************/ 
     159  /*---------------------------------------------------------------------------*/ 
     160  /** 
     161   * Déprotège un dossier  
     162   * @param string $dir Dossier à déprotéger 
     163   * @return boolean TRUE si le dossier a été déprotégé, FALSE sinon 
     164   */ 
    206165  function DelDir($dir) { 
    207166    global $mem,$bro,$err; 
     
    223182  } 
    224183 
    225   /* **************************************************************************** 
    226      add_user($login,$password,$dir) Ajoute un utilisateur 
    227      $login est le compte a creer 
    228      $password est le mot de passe en clair 
    229   *****************************************************************************/ 
     184  /*---------------------------------------------------------------------------*/ 
     185  /** 
     186   * Ajoute un utilisateur à un dossier protégé.  
     187   * @param string $login Utilisateur à ajouter 
     188   * @param string $password Mot de passe à ajouter (en clair) 
     189   * @param string $dir Dossier concerné  
     190   * @return boolean TRUE si l'utilisateur a été ajouté avec succès, FALSE sinon 
     191   */ 
    230192  function add_user($user,$password,$dir) { 
    231193    global $err, $bro, $mail; // mail class give md5crypt password function 
     
    260222  } 
    261223 
    262   /* **************************************************************************** 
    263      del_user($lst) Supprime un ou plusieurs utilisateurs du dossier 
    264   *****************************************************************************/ 
     224  /*---------------------------------------------------------------------------*/ 
     225  /** 
     226   * Supprime un ou plusieurs utilisateurs d'un dossier protégé. 
     227   * @param array $lst Tableau des logins à supprimer. 
     228   * @param string $dir Dossier dans lequel on souhaite supprimer des utilisateurs 
     229   * @return boolean TRUE si les utilisateurs ont été supprimés avec succès, FALSE sinon 
     230   */ 
    265231  function del_user($lst,$dir) { 
    266232    global $bro,$err; 
     
    279245      $s=fgets($file,1024); 
    280246      $t=explode(":",$s); 
    281       if (!in_array($t[0],$lst)&&($t[0]!="\n")) { 
     247      if (!in_array($t[0],$lst) && ($t[0]!="\n")) { 
    282248        fseek($newf,0); 
    283249        fwrite($newf, "$s"); 
     
    291257  } 
    292258 
    293   /* **************************************************************************** 
    294      change_pass($newpass) Supprime un ou plusieurs utilisateurs du dossier 
    295   *****************************************************************************/ 
     259  /*---------------------------------------------------------------------------*/ 
     260  /** 
     261   * Change le mot de passe d'un utilisateur d'un dossier protégé. 
     262   * @param string $user Utilisateur dont on souhaite changer le mot de passe  
     263   * @param string $newpass Nouveau mot de passe de cet utilisateur 
     264   * @param string $dir Dossier protégé concerné 
     265   * @return boolean TRUE si le mot de passe a été changé avec succès, FALSE sinon 
     266   */ 
    296267  function change_pass($user,$newpass,$dir) { 
    297268    global $bro,$err,$mail; 
     
    320291  } 
    321292 
     293  /*---------------------------------------------------------------------------*/ 
     294  /** 
     295   * Vérifie la validité des lignes d'un .htaccess existant. 
     296   * @param string $absolute Dossier que l'on souhaite vérifier 
     297   * @return boolean TRUE si le dossier est correctement protégé par un .htaccess, FALSE sinon 
     298   * @access private 
     299   */ 
     300  function _reading_htaccess($absolute) { 
     301    global $err; 
     302    $err->log("hta","_reading_htaccess",$absolute); 
     303    $file = fopen("$absolute/.htaccess","r+"); 
     304    $lignes=array(1,1,1); 
     305    $errr=0; 
     306    while (!feof($file) && !$errr) { 
     307      $s=fgets($file,1024); 
     308      if (substr($s,0,14)!="ErrorDocument " && substr($s,0,12)!="RewriteRule " && substr($s,0,14)!="RewriteEngine " && trim($s)!="") { 
     309        $errr=1; 
     310      } 
     311      if (strtolower(trim($s))==strtolower("authuserfile $absolute/.htpasswd")) { 
     312        $lignes[0]=0; 
     313        $errr=0; 
     314      } // authuserfile 
     315      if (strtolower(trim($s))=="require valid-user") { 
     316        $lignes[1]=0; 
     317        $errr=0; 
     318      } //require 
     319      if (strtolower(trim($s))=="authtype basic") { 
     320        $lignes[2]=0; 
     321        $errr=0; 
     322      } //authtype 
     323    } // Reading config file 
     324    fclose($file); 
     325    if ($errr ||  in_array(0,$lignes)) { 
     326      $err->raise("hta",1); 
     327      return false; 
     328    } 
     329    return true; 
     330  }  
     331 
    322332} /* CLASS m_webaccess */ 
    323333 
  • bureau/class/m_mysql.php

    r13 r50  
    11<?php 
    22/* 
    3  $Id: m_mysql.php,v 1.2 2003/03/27 23:30:38 root Exp $ 
     3 $Id: m_mysql.php,v 1.3 2003/04/19 13:44:33 benjamin Exp $ 
    44 ---------------------------------------------------------------------- 
    55 AlternC - Web Hosting System 
     
    2828 ---------------------------------------------------------------------- 
    2929*/ 
     30/** 
     31* Classe de gestion des bases de données mysql des hébergés. 
     32*  
     33* Cette classe permet de gérer les bases de données et login/pass pour mysql 
     34* Copyleft {@link http://alternc.net/ AlternC Team} 
     35*  
     36* @copyright    AlternC-Team 2002-11-01 http://alternc.net/ 
     37*  
     38*/ 
    3039class m_mysql { 
    3140 
    32   var $uid=0;         /* Membre dont on souhaite gérer les comptes mysql */ 
     41  /** Membre dont on gère les bases de données */ 
     42  var $uid=0; 
    3343 
    3444  var $alternc_quota_name="mysql"; 
     
    3848  /*---------------------------------------------------------------------------*/ 
    3949  /** 
    40     m_mysql([$mid]) Constructeur de la classe m_mysql, initialise le membre concerne 
     50  * m_mysql([$mid]) Constructeur de la classe m_mysql, initialise le membre concerne 
    4151  */ 
    4252  function m_mysql($membre=0) { 
     
    4656  /*---------------------------------------------------------------------------*/ 
    4757  /** 
    48      get_dblist() retourne la liste des bases configurées pour le membre. 
    49      @return array tableau de tableaux associatifs contenant  
    50        "db" => nom de la base "bck" => "mode de backup" "dir" => "Répertoire de backup 
    51        "size" => Size of the database (in bytes) 
    52        retourne false si l'utilisateur n'a aucune base de données 
    53   */ 
     58   * get_dblist() retourne la liste des bases configurées pour le membre. 
     59   * @return array tableau de tableaux associatifs contenant  
     60   *  "db" => nom de la base "bck" => "mode de backup" "dir" => "Répertoire de backup 
     61   *  "size" => Size of the database (in bytes) 
     62   *  retourne false si l'utilisateur n'a aucune base de données 
     63   */ 
    5464  function get_dblist() { 
    5565    global $db,$err,$bro; 
     
    7080  /*---------------------------------------------------------------------------*/ 
    7181  /** 
    72      add_db($dbn) Create a new database for the current user. 
    73      @return true if the database $user_$db has been successfully created, or false if  
    74      an error occured, such as over quota user. 
    75   */ 
     82   * Create a new database for the current user. 
     83   * @param string $dbn Database name ($user_$dbn is the mysql db name) 
     84   * @return true if the database $user_$db has been successfully created, or false if  
     85   * an error occured, such as over quota user. 
     86   */ 
    7687  function add_db($dbn) { 
    7788    global $db,$err,$quota,$mem; 
     
    113124  /*---------------------------------------------------------------------------*/ 
    114125  /** 
    115      del_db($dbn) Delete a database for the current user. 
    116      @return true if the database $user_$db has been successfully deleted, or false if  
    117      an error occured, such as db does not exist. 
    118   */ 
     126   * Delete a database for the current user. 
     127   * @param string $dbn Name of the database to delete. The db name is $user_$dbn 
     128   * @return true if the database $user_$db has been successfully deleted, or false if  
     129   *  an error occured, such as db does not exist. 
     130   */ 
    119131  function del_db($dbn) { 
    120132    global $db,$err,$quota,$mem; 
     
    145157   
    146158  /*---------------------------------------------------------------------------*/ 
    147   /** put_mysql_backup() Set the backup parameters for db $db 
    148      @param $db string database name 
    149      @param $bck_mode integer Backup mode (0 = none 1 = daily 2 = weekly) 
    150      @param $bck_history integer How many backup should we keep ? 
    151      @param $bck_gzip boolean Shall we compress the backup ? 
    152      @param $bck_dir string Directory relative to the user account where the backup will be stored 
    153      @return boolean true if the backup parameters has been successfully changed, false if not. 
    154   */ 
     159  /** Set the backup parameters for db $db 
     160   * @param $db string database name 
     161   * @param $bck_mode integer Backup mode (0 = none 1 = daily 2 = weekly) 
     162   * @param $bck_history integer How many backup should we keep ? 
     163   * @param $bck_gzip boolean Shall we compress the backup ? 
     164   * @param $bck_dir string Directory relative to the user account where the backup will be stored 
     165   * @return boolean true if the backup parameters has been successfully changed, false if not. 
     166   */ 
    155167  function put_mysql_backup($dbn,$bck_mode,$bck_history,$bck_gzip,$bck_dir) { 
    156168    global $db,$err,$mem,$bro; 
     
    189201 
    190202  /*---------------------------------------------------------------------------*/ 
    191   /** put_mysql_details($password) Change the password of the user 
    192      @param $password string new password (cleartext) 
    193      @return boolean true if the password has been successfully changed, false else. 
    194   */ 
     203  /** Change the password of the user 
     204   * @param $password string new password (cleartext) 
     205   * @return boolean true if the password has been successfully changed, false else. 
     206   */ 
    195207  function put_mysql_details($password) { 
    196208    global $db,$err,$mem; 
     
    241253 
    242254 
    243  
    244  
    245255  function restore($file,$stdout,$r) { 
    246256    global $err,$bro,$mem; 
     
    263273  /* TODO / TO BE IMPLEMENTED : */ 
    264274 
    265   function add_member($id) { 
     275  function alternc_add_member($id) { 
    266276    global $db,$err; 
    267277    $err->log("mysql","add_member"); 
     
    273283  } 
    274284 
    275   function del_member($id) { 
     285  function alternc_del_member($id) { 
    276286    global $db,$err; 
    277287    $err->log("mysql","del_member"); 
  • bureau/class/m_stats.php

    r45 r50  
    11<?php 
    22/* 
    3  $Id: m_stats.php,v 1.2 2003/04/17 21:39:56 benjamin Exp $ 
     3 $Id: m_stats.php,v 1.3 2003/04/19 13:44:33 benjamin Exp $ 
    44 ---------------------------------------------------------------------- 
    55 AlternC - Web Hosting System 
     
    191191   * @param integer $id est le numéro du jeu de statistiques 
    192192   * @param string $dir est un chemin relatif à "/var/alternc/html/u/user" 
     193   * @param string $stlang est la langue de production des statistiques (code à 2 lettres) 
    193194   */ 
    194195  function put_stats_details($id,$dir,$stlang) { 
     
    212213    $lo=$mem->user["login"]; 
    213214    $l=substr($lo,0,1); 
    214     // Let's go ahead ;.) 
    215215    $db->query("UPDATE stats SET lang='$stlang', dir='/var/alternc/html/$l/$lo/$dir', uid=".$this->uid." WHERE id=$id;"); 
     216    $this->_createconf($id); 
    216217    return true; 
    217218  } 
     
    318319  } 
    319320 
    320   /* Recalcule le quota complet de l'utilisateur courant, ou de l'utilisateur $id */ 
     321  /* ----------------------------------------------------------------- */ 
     322  /**  
     323   * Recalcule le quota complet de l'utilisateur courant, ou de l'utilisateur $id 
     324   * @param integer $id Numéro de l'utilisateur (facultatif) 
     325   */ 
    321326  function alternc_quota_check($id=-1) { 
    322327    global $db,$err,$quota; 
     
    333338  } 
    334339 
    335   function _delconf($hostname) { 
    336     // Effacement du fichier de configuration Webalizer du domaine $hostname 
    337     @unlink($this->CONFDIR."/".$hostname.".conf"); 
    338   } 
    339  
    340   function _createconf($id) { 
    341     global $db,$err; 
    342     // Création du fichier de configuration Webalizer du domaine $id 
    343     $s=implode("",file($this->TEMPLATEFILE)); 
    344     // Parsing du template : 
    345     $db->query("SELECT * FROM stats WHERE id=$id AND uid=".$this->uid.";"); 
    346     if (!$db->num_rows()) { 
    347       $err->raise("stats",2); 
    348       return false; 
    349     } 
    350     $db->next_record(); 
    351     $s=str_replace("%OUTPUTDIR%",$db->f("dir"),$s); 
    352     $s=str_replace("%HOSTNAME%",$db->f("hostname"),$s); 
    353     $f=fopen($this->CONFDIR."/".$db->f("hostname").".conf","wb"); 
    354     fputs($f,$s,strlen($s)); 
    355     fclose($f); 
    356   } 
    357  
    358   /* **************************************************************************** 
    359      get_list_raw() retourne un tableau contenant les jeux de stats APACHE  
    360      d'un membre. Le tableau est de la forme 
    361      $r[0-n]["id"] = numéros du jeu 
    362      $r[0-n]["hostname"]= domaine concerné 
    363      $r[0-n]["folder"]= Répertoire destination (dans le dossier du membre) 
    364   *****************************************************************************/ 
     340  /* ----------------------------------------------------------------- */ 
     341  /** Retourne un tableau contenant les jeux de stats APACHE  
     342   * d'un membre. Le tableau est de la forme 
     343   * $r[0-n]["id"] = numéros du jeu 
     344   * $r[0-n]["hostname"]= domaine concerné 
     345   * $r[0-n]["folder"]= Répertoire destination (dans le dossier du membre) 
     346   *  
     347   * @return array Tableau de résultat, ou FALSE si une erreur est survenue 
     348   */ 
    365349  function get_list_raw() { 
    366350    global $db,$err; 
     
    385369  } 
    386370 
    387   /* **************************************************************************** 
    388      get_stats_details_raw($login) retourne un tableau contenant les details d'un 
    389      jeu de statistiques apache brut géré par le membre. 
    390      $id est un id de jeu de stats. Retourne un tableau associatif sous la forme : 
    391      "id" = numéros du jeu 
    392      "hostname"= domaine concerné 
    393      "folder"= Répertoire destination (dans le dossier du membre) 
    394   *****************************************************************************/ 
     371  /* ----------------------------------------------------------------- */ 
     372  /**  
     373   * retourne un tableau contenant les details d'un 
     374   * jeu de statistiques apache brut géré par le membre. 
     375   * $id est un id de jeu de stats. Retourne un tableau associatif sous la forme : 
     376   * "id" = numéro du jeu 
     377   * "hostname"= domaine concerné 
     378   * "folder"= Répertoire destination (dans le dossier du membre) 
     379   * @param string $id Numéro du jeu de stats brutes dont on veut les détails 
     380   * @return array Tableau contenant les détails du jeu, ou FALSE en cas d'erreur 
     381   */ 
    395382  function get_stats_details_raw($id) { 
    396383    global $db,$err; 
     
    413400  } 
    414401 
    415   /* **************************************************************************** 
    416      put_stats_details_raw($id,$folder) Modifie un jeu de statistiques apache brut 
    417      existant 
    418      $id est le numéro du jeu de statistiques 
    419      $folder est un chemin relatif à "/var/alternc/html/u/user" 
    420   *****************************************************************************/ 
     402  /* ----------------------------------------------------------------- */ 
     403  /**  
     404   * Modifie un jeu de statistiques apache brutes existant 
     405   * $id est le numéro du jeu de statistiques 
     406   * $folder est un chemin relatif à "/var/alternc/html/u/user" 
     407   * @param integer $id Numéro du jeu de stats brutes à modifier  
     408   * @param string $folder Dossier destination des stats 
     409   * @return boolean TRUE si le jeu a été modifié, FALSE sinon. 
     410   */ 
    421411  function put_stats_details_raw($id,$folder) { 
    422412    global $db,$err,$bro,$mem; 
     
    428418      return false; 
    429419    } 
     420    // TODO : replace with ,1 on convertabsolute call, and delete "/Var/alternc.../" at the query. 
    430421    $folder=$bro->convertabsolute($folder); 
    431422    if (substr($folder,0,1)=="/") { 
    432423      $folder=substr($folder,1); 
    433424    } 
    434     // On a épuré $dir des problèmes eventuels ... On est en DESSOUS du dossier de l'utilisateur. 
    435425    $lo=$mem->user["login"]; 
    436426    $l=substr($lo,0,1); 
    437     // Let's go ahead ;.) 
    438427    $db->query("UPDATE stats2 SET folder='/var/alternc/html/$l/$lo/$folder', mid=".$this->uid." WHERE id=$id;"); 
    439428    return true; 
    440429  } 
    441430 
    442   /* **************************************************************************** 
    443      delete_stats_raw($id) Efface un jeu de statistiques apache brut existant 
    444      $id est un id de jeu de statistiques 
    445   *****************************************************************************/ 
     431  /* ----------------------------------------------------------------- */ 
     432  /**  
     433   * Efface un jeu de statistiques apache brut existant 
     434   * @param integer $id est un id de jeu de statistiques 
     435   * @return boolean TRUE si le jeu a été effacé, FALSE sinon. 
     436   */ 
    446437  function delete_stats_raw($id) { 
    447438    global $db,$err,$quota; 
     
    458449  } 
    459450 
    460   /* **************************************************************************** 
    461      add_stats_raw($hostname,$folder) Cree un nouveau jeu de statistiques apache brut 
    462      $folder est le chemin d'accès racine du compte ftp dans le compte du membre 
    463      $hostname est le nom de domaine sur lequel on fait des stats 
    464      retourne true ou false 
    465   *****************************************************************************/ 
     451  /* ----------------------------------------------------------------- */ 
     452  /**  
     453   * Crée un nouveau jeu de statistiques brutes apache. 
     454   * @param string $hostname est le domaine concerné 
     455   * @param string $dir est le chemin d'accès racine des stats dans le compte 
     456   * @return boolean TRUE si le jeu a été créé, FALSE si un erreur est survenue 
     457   */ 
    466458  function add_stats_raw($hostname,$dir) { 
    467459    global $db,$err,$quota,$bro,$mem; 
    468460    $err->log("stats","add_stats_raw",$hostname); 
     461    // TODO : utiliser le second param de convertabsolute pour simplification. 
    469462    $dir=$bro->convertabsolute($dir); 
    470463    if (substr($dir,0,1)=="/") { 
    471464      $dir=substr($dir,1); 
    472465    } 
    473     // On a épuré $dir des problèmes eventuels ... On est en DESSOUS du dossier de l'utilisateur. 
    474466    $lo=$mem->user["login"]; 
    475467    $l=substr($lo,0,1); 
    476     // Le compte n'existe pas, on le crée. 
    477468    if ($quota->cancreate("stats")) { 
    478469      $quota->inc("stats"); 
     
    485476  } 
    486477 
     478  /* ----------------------------------------------------------------- */ 
     479  /** Effacement du fichier de conf webalizer du domaine $hostname 
     480   * @access private 
     481   */ 
     482  function _delconf($hostname) { 
     483    @unlink($this->CONFDIR."/".$hostname.".conf"); 
     484  } 
     485 
     486  /* ----------------------------------------------------------------- */ 
     487  /** Création du fichier de configuration Webalizer du domaine $id 
     488   * @access private 
     489   */ 
     490  function _createconf($id) { 
     491    global $db,$err; 
     492    $s=implode("",file($this->TEMPLATEFILE)); 
     493    $db->query("SELECT * FROM stats WHERE id=$id AND uid=".$this->uid.";"); 
     494    if (!$db->num_rows()) { 
     495      $err->raise("stats",2); 
     496      return false; 
     497    } 
     498    $db->next_record(); 
     499    $s=str_replace("%OUTPUTDIR%",$db->f("dir"),$s); 
     500    $s=str_replace("%HOSTNAME%",$db->f("hostname"),$s); 
     501    $f=fopen($this->CONFDIR."/".$db->f("hostname").".conf","wb"); 
     502    fputs($f,$s,strlen($s)); 
     503    fclose($f); 
     504  } 
     505 
    487506} /* CLASSE m_stats */ 
    488507 
  • todo

    r49 r50  
     1DONE :  
     2 
     3- Ajout d'une sémaphore dans config.php : ainsi, une seule page du bureau peut être en exécution à un instant T. 
     4- Ajout des commentaires doxygen dans m_stats et m_hta et m_mysql 
     5 
    16 
    27A FAIRE URGEMMENT :  
     
    712- quels caractères sont autorisés dans mysql ?  
    813- Mettre la vue admin sur 3 colonnes au lieu de 2. 
    9  
    1014 
    1115A faire plus tard (voire déjà fait...) :  
     
    2327- vérifier do_domaines.sh : certains problèmes avec les changements de dns/nondns mx/nonmx 
    2428- le fichier domaines.template dans system/bind2 est à mettre en fichier de config car il est à modifier selon la config 
    25 - Créer une variante de webalizer qui le compile en plusieurs langues. 
     29 
     30FAIT- Créer une variante de webalizer qui le compile en plusieurs langues. 
    2631 
    2732 
Note: See TracChangeset for help on using the changeset viewer.