Changeset 50
- Timestamp:
- 02/21/06 23:29:45 (7 years ago)
- Files:
-
- 5 edited
-
bureau/class/config.php (modified) (2 diffs)
-
bureau/class/m_hta.php (modified) (14 diffs)
-
bureau/class/m_mysql.php (modified) (11 diffs)
-
bureau/class/m_stats.php (modified) (10 diffs)
-
todo (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
bureau/class/config.php
r18 r50 1 1 <?php 2 2 /* 3 $Id: config.php,v 1. 3 2003/03/28 15:32:13 rootExp $3 $Id: config.php,v 1.4 2003/04/19 13:44:33 benjamin Exp $ 4 4 ---------------------------------------------------------------------- 5 5 AlternC - Web Hosting System … … 28 28 ---------------------------------------------------------------------- 29 29 */ 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 37 function alternc_shutdown() { 38 global $alternc_sem; 39 sem_release( $alternc_sem ); 40 } 41 // 3. Register the shutdown function 42 register_shutdown_function("alternc_shutdown"); 43 // 4. Acquire the semaphore : with that process, 44 sem_acquire( $alternc_sem ); 45 30 46 31 47 -
bureau/class/m_hta.php
r1 r50 1 1 <?php 2 2 /* 3 $Id: m_hta.php,v 1. 1.1.1 2003/03/26 17:41:29 rootExp $3 $Id: m_hta.php,v 1.2 2003/04/19 13:44:33 benjamin Exp $ 4 4 ---------------------------------------------------------------------- 5 5 AlternC - Web Hosting System … … 28 28 ---------------------------------------------------------------------- 29 29 */ 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 */ 30 40 class m_hta { 31 41 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 */ 39 50 function m_webaccess($membre=0) { 40 51 $this->mid=$membre; 41 52 } 42 function errstr() { 43 return $this->errstrings[$this->error];44 }45 46 /* ****************************************************************************47 CreateDir() Créé le dossier à protéger le .htaccess et le .htpassword48 *****************************************************************************/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 */ 49 60 function CreateDir($dir) { 50 61 global $mem,$bro,$err; … … 58 69 mkdir($absolute,00777); 59 70 } 60 61 71 if (!file_exists("$absolute/.htaccess")) { 62 72 touch("$absolute/.htaccess"); … … 67 77 fclose($file); 68 78 } 69 /* else {70 if (!_reading_htaccess($absolute)) {71 return false;72 }73 }74 */75 79 if (!file_exists("$absolute/.htpasswd")) { 76 80 touch("$absolute/.htpasswd"); 77 81 return true; 78 82 } 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 */ 138 91 function ListDir() { 139 92 global $err,$mem; … … 146 99 return false; 147 100 } 148 149 101 for ($i=0;$i<count($sortie);$i++){ 150 102 preg_match("/^\/var\/alternc\/html\/.\/[^\/]*\/(.*)\/\.htpasswd/", $sortie[$i], $matches); … … 154 106 } 155 107 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 */ 160 114 function is_protected($dir){ 161 115 global $mem,$err; … … 163 117 $absolute="/var/alternc/html/".substr($mem->user["login"],0,1)."/".$mem->user["login"]."/$dir"; 164 118 $sortie=array(); 165 166 119 if (file_exists("$absolute/.htpasswd")){ 167 120 return true; … … 172 125 } 173 126 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 */ 177 133 function get_hta_detail($dir) { 178 134 global $mem,$err; … … 201 157 } 202 158 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 */ 206 165 function DelDir($dir) { 207 166 global $mem,$bro,$err; … … 223 182 } 224 183 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 */ 230 192 function add_user($user,$password,$dir) { 231 193 global $err, $bro, $mail; // mail class give md5crypt password function … … 260 222 } 261 223 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 */ 265 231 function del_user($lst,$dir) { 266 232 global $bro,$err; … … 279 245 $s=fgets($file,1024); 280 246 $t=explode(":",$s); 281 if (!in_array($t[0],$lst) &&($t[0]!="\n")) {247 if (!in_array($t[0],$lst) && ($t[0]!="\n")) { 282 248 fseek($newf,0); 283 249 fwrite($newf, "$s"); … … 291 257 } 292 258 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 */ 296 267 function change_pass($user,$newpass,$dir) { 297 268 global $bro,$err,$mail; … … 320 291 } 321 292 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 322 332 } /* CLASS m_webaccess */ 323 333 -
bureau/class/m_mysql.php
r13 r50 1 1 <?php 2 2 /* 3 $Id: m_mysql.php,v 1. 2 2003/03/27 23:30:38 rootExp $3 $Id: m_mysql.php,v 1.3 2003/04/19 13:44:33 benjamin Exp $ 4 4 ---------------------------------------------------------------------- 5 5 AlternC - Web Hosting System … … 28 28 ---------------------------------------------------------------------- 29 29 */ 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 */ 30 39 class m_mysql { 31 40 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; 33 43 34 44 var $alternc_quota_name="mysql"; … … 38 48 /*---------------------------------------------------------------------------*/ 39 49 /** 40 m_mysql([$mid]) Constructeur de la classe m_mysql, initialise le membre concerne50 * m_mysql([$mid]) Constructeur de la classe m_mysql, initialise le membre concerne 41 51 */ 42 52 function m_mysql($membre=0) { … … 46 56 /*---------------------------------------------------------------------------*/ 47 57 /** 48 get_dblist() retourne la liste des bases configurées pour le membre.49 @return array tableau de tableaux associatifs contenant50 "db" => nom de la base "bck" => "mode de backup" "dir" => "Répertoire de backup51 "size" => Size of the database (in bytes)52 retourne false si l'utilisateur n'a aucune base de données53 */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 */ 54 64 function get_dblist() { 55 65 global $db,$err,$bro; … … 70 80 /*---------------------------------------------------------------------------*/ 71 81 /** 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 */ 76 87 function add_db($dbn) { 77 88 global $db,$err,$quota,$mem; … … 113 124 /*---------------------------------------------------------------------------*/ 114 125 /** 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 */ 119 131 function del_db($dbn) { 120 132 global $db,$err,$quota,$mem; … … 145 157 146 158 /*---------------------------------------------------------------------------*/ 147 /** put_mysql_backup()Set the backup parameters for db $db148 @param $db string database name149 @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 stored153 @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 */ 155 167 function put_mysql_backup($dbn,$bck_mode,$bck_history,$bck_gzip,$bck_dir) { 156 168 global $db,$err,$mem,$bro; … … 189 201 190 202 /*---------------------------------------------------------------------------*/ 191 /** put_mysql_details($password)Change the password of the user192 @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 */ 195 207 function put_mysql_details($password) { 196 208 global $db,$err,$mem; … … 241 253 242 254 243 244 245 255 function restore($file,$stdout,$r) { 246 256 global $err,$bro,$mem; … … 263 273 /* TODO / TO BE IMPLEMENTED : */ 264 274 265 function a dd_member($id) {275 function alternc_add_member($id) { 266 276 global $db,$err; 267 277 $err->log("mysql","add_member"); … … 273 283 } 274 284 275 function del_member($id) {285 function alternc_del_member($id) { 276 286 global $db,$err; 277 287 $err->log("mysql","del_member"); -
bureau/class/m_stats.php
r45 r50 1 1 <?php 2 2 /* 3 $Id: m_stats.php,v 1. 2 2003/04/17 21:39:56benjamin Exp $3 $Id: m_stats.php,v 1.3 2003/04/19 13:44:33 benjamin Exp $ 4 4 ---------------------------------------------------------------------- 5 5 AlternC - Web Hosting System … … 191 191 * @param integer $id est le numéro du jeu de statistiques 192 192 * @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) 193 194 */ 194 195 function put_stats_details($id,$dir,$stlang) { … … 212 213 $lo=$mem->user["login"]; 213 214 $l=substr($lo,0,1); 214 // Let's go ahead ;.)215 215 $db->query("UPDATE stats SET lang='$stlang', dir='/var/alternc/html/$l/$lo/$dir', uid=".$this->uid." WHERE id=$id;"); 216 $this->_createconf($id); 216 217 return true; 217 218 } … … 318 319 } 319 320 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 */ 321 326 function alternc_quota_check($id=-1) { 322 327 global $db,$err,$quota; … … 333 338 } 334 339 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 */ 365 349 function get_list_raw() { 366 350 global $db,$err; … … 385 369 } 386 370 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 */ 395 382 function get_stats_details_raw($id) { 396 383 global $db,$err; … … 413 400 } 414 401 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 */ 421 411 function put_stats_details_raw($id,$folder) { 422 412 global $db,$err,$bro,$mem; … … 428 418 return false; 429 419 } 420 // TODO : replace with ,1 on convertabsolute call, and delete "/Var/alternc.../" at the query. 430 421 $folder=$bro->convertabsolute($folder); 431 422 if (substr($folder,0,1)=="/") { 432 423 $folder=substr($folder,1); 433 424 } 434 // On a épuré $dir des problèmes eventuels ... On est en DESSOUS du dossier de l'utilisateur.435 425 $lo=$mem->user["login"]; 436 426 $l=substr($lo,0,1); 437 // Let's go ahead ;.)438 427 $db->query("UPDATE stats2 SET folder='/var/alternc/html/$l/$lo/$folder', mid=".$this->uid." WHERE id=$id;"); 439 428 return true; 440 429 } 441 430 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 */ 446 437 function delete_stats_raw($id) { 447 438 global $db,$err,$quota; … … 458 449 } 459 450 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 */ 466 458 function add_stats_raw($hostname,$dir) { 467 459 global $db,$err,$quota,$bro,$mem; 468 460 $err->log("stats","add_stats_raw",$hostname); 461 // TODO : utiliser le second param de convertabsolute pour simplification. 469 462 $dir=$bro->convertabsolute($dir); 470 463 if (substr($dir,0,1)=="/") { 471 464 $dir=substr($dir,1); 472 465 } 473 // On a épuré $dir des problèmes eventuels ... On est en DESSOUS du dossier de l'utilisateur.474 466 $lo=$mem->user["login"]; 475 467 $l=substr($lo,0,1); 476 // Le compte n'existe pas, on le crée.477 468 if ($quota->cancreate("stats")) { 478 469 $quota->inc("stats"); … … 485 476 } 486 477 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 487 506 } /* CLASSE m_stats */ 488 507 -
todo
r49 r50 1 DONE : 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 1 6 2 7 A FAIRE URGEMMENT : … … 7 12 - quels caractères sont autorisés dans mysql ? 8 13 - Mettre la vue admin sur 3 colonnes au lieu de 2. 9 10 14 11 15 A faire plus tard (voire déjà fait...) : … … 23 27 - vérifier do_domaines.sh : certains problèmes avec les changements de dns/nondns mx/nonmx 24 28 - 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 30 FAIT- Créer une variante de webalizer qui le compile en plusieurs langues. 26 31 27 32
Note: See TracChangeset
for help on using the changeset viewer.
