Changeset 1819
- Timestamp:
- 05/11/07 03:29:28 (2 years ago)
- Files:
-
- alternc/trunk/bureau/class/m_admin.php (modified) (28 diffs)
- alternc/trunk/bureau/class/m_mail.php (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
alternc/trunk/bureau/class/m_admin.php
r1800 r1819 73 73 /** 74 74 * Returns the known information about a hosted account 75 * 75 * 76 76 * Returns all what we know about an account (contents of the tables 77 77 * <code>membres</code> et <code>local</code>) … … 82 82 * Returns FALSE if an error occurs. 83 83 * 84 * Retourne tout ce que l'on sait sur un membre (contenu des tables <code>membres et local</code>) 84 * Retourne tout ce que l'on sait sur un membre (contenu des tables <code>membres et local</code>) 85 85 * vérifie que le compte appelant est super-admin 86 86 * @param integer $uid Numéro de l'utilisateur dont on veut les informations. 87 87 * @return array Retourne un tableau associatif contenant l'ensemble des champs des tables 'membres' 88 88 * et 'local' pour le membre demandé. Retourne FALSE si une erreur s'est produite. 89 * 89 * 90 90 */ 91 91 function get($uid) { … … 116 116 117 117 /* ----------------------------------------------------------------- */ 118 /** 118 /** 119 119 * @return TRUE if there's only ONE admin account 120 120 * Retourne true s'il n'existe qu'un seul compte administrateur … … 131 131 * Returns the list of the hosted accounts 132 132 * Retourne la liste des membres hébergés 133 * 133 * 134 134 * Returns all what we know about ALL the accounts (contents of the tables 135 135 * <code>membres</code> et <code>local</code>) … … 142 142 * Retourne tout ce que l'on sait sur LES membres (contenu de membres et local) 143 143 * vérifie que le compte appelant est super-admin 144 * @return array Retourne un tableau indexé de tableaux associatifs contenant l'ensemble des 145 * champs des tables 'membres' et 'local' pour les membre. Retourne FALSE si une erreur s'est 144 * @return array Retourne un tableau indexé de tableaux associatifs contenant l'ensemble des 145 * champs des tables 'membres' et 'local' pour les membre. Retourne FALSE si une erreur s'est 146 146 * produite. 147 * 147 * 148 148 */ 149 149 function get_list($all=0) { … … 196 196 /** 197 197 * Creates a new hosted account 198 * 198 * 199 199 * Creates a new hosted account (in the tables <code>membres</code> 200 200 * and <code>local</code>). Prevents any manipulation of the account if … … 212 212 * 213 213 * Crée un nouveau membre hébergé 214 * Création d'un nouveau membre (dans membres et local) Refuse l'utilisation de l'objet 214 * Création d'un nouveau membre (dans membres et local) Refuse l'utilisation de l'objet 215 215 * si le compte $mid n'est pas super-admin 216 * 216 * 217 217 * @param $login Nom d'utilisateur, de la forme [a-z][a-z0-9]* 218 218 * @param $pass Mot de passe, maxi 64 caractères … … 250 250 return false; 251 251 } 252 // Il ne peut pas être égal au login ou au nom de base systeme ! 252 // Il ne peut pas être égal au login ou au nom de base systeme ! 253 253 if ($login==$L_MYSQL_DATABASE || $login==$L_MYSQL_LOGIN || $login=="mysql" || $login=="root") { 254 254 $err->raise("admin",10); … … 292 292 /** 293 293 * Modifies an account 294 * 294 * 295 295 * Modifies an account (in the tables <code>membres</code> 296 296 * and <code>local</code>). Prevents any manipulation of the account if … … 321 321 * @param $duration integer Durée du compte en mois 322 322 * @return boolean Retourne FALSE si une erreur s'est produite, TRUE sinon. 323 * 323 * 324 324 */ 325 325 function update_mem($uid, $mail, $nom, $prenom, $pass, $enabled, $canpass, $type='default', $duration=0) { … … 334 334 $db=new DB_System(); 335 335 if ($pass) { 336 // on modifie aussi le password : 336 // on modifie aussi le password : 337 337 $pass=_md5cr($pass); 338 338 $ssq=" ,pass='$pass' "; … … 420 420 * 421 421 * Efface un membre hébergé 422 * 422 * 423 423 * Supprime le membre spécifié. Refuse l'utilisation de l'objet si le compte $mid n'est pas super-admin 424 424 * @param $uid Numéro du membre à supprimer. … … 436 436 $db=new DB_System(); 437 437 $tt=$this->get($uid); 438 439 // On devient l'utilisateur : 438 439 // On devient l'utilisateur : 440 440 $mem->su($uid); 441 441 … … 443 443 $dom->alternc_del_member(); 444 444 445 // Send the event to the other classes : 445 // Send the event to the other classes : 446 446 foreach($classes as $c) { 447 447 if (method_exists($GLOBALS[$c],"alternc_del_member")) { … … 588 588 } 589 589 590 590 591 591 592 592 /* ----------------------------------------------------------------- */ … … 611 611 $err->raise("admin",2); 612 612 return false; 613 } 613 } 614 614 if ($db->Record["su"]!=0) { 615 615 $err->raise("admin",8); … … 632 632 * @param integer $uid Numéro du compte à transformer 633 633 * @return boolean Retourne FALSE si une erreur s'est produite. 634 * 634 * 635 635 */ 636 636 function su2normal($uid) { … … 659 659 * server with the instructions to validate the installation of a 660 660 * domain for each TLD (if necessary). 661 * 661 * 662 662 * @return array An associative array like $r["tld"], $r["mode"] where tld 663 663 * is the tld and mode is the authorized mode. 664 * 665 * 666 * Liste des TLD autorisés 667 * 668 * Retourne la liste des tld autorisés, ainsi que la façon dont ils sont autorisés. 669 * Les tld sont le dernier membre (ou parfois les 2 derniers membres) d'un domaine. 670 * Par exemple "org" "com" etc. AlternC conserve une table "tld" qui contient la liste 671 * des TLD autorisés à être installé sur le serveur, accompagné des vérifications à effectuer 672 * pour chaque TLD. Par exemple, on peux vérifier que les DNS du domaine pointent bien vers 664 * 665 * 666 * Liste des TLD autorisés 667 * 668 * Retourne la liste des tld autorisés, ainsi que la façon dont ils sont autorisés. 669 * Les tld sont le dernier membre (ou parfois les 2 derniers membres) d'un domaine. 670 * Par exemple "org" "com" etc. AlternC conserve une table "tld" qui contient la liste 671 * des TLD autorisés à être installé sur le serveur, accompagné des vérifications à effectuer 672 * pour chaque TLD. Par exemple, on peux vérifier que les DNS du domaine pointent bien vers 673 673 * notre serveur, ou juste que le domaine existe etc. 674 674 * <p><b>Note</b> : Il faudrait pouvoir effectuer une requete DNS, et pouvoir juste vérifier les DNS 675 675 * via DIG et pas seulement via Whois</p> 676 * 677 * @return array Retourne un tableau de tableau associatif du type $r["tld"], $r["mode"]. 676 * 677 * @return array Retourne un tableau de tableau associatif du type $r["tld"], $r["mode"]. 678 678 * TLD est le tld et MODE est le mode autorisé 679 * 679 * 680 680 */ 681 681 function listtld() { … … 691 691 /** 692 692 * List the hosted domains on this server 693 * 693 * 694 694 * Return the list of hosted domains on this server, (an array of associative arrays) 695 695 * @return array $r[$i] / [domaine][member][noerase][gesdns][gesmx] … … 706 706 /* ----------------------------------------------------------------- */ 707 707 /** 708 * Lock / Unlock a domain 708 * Lock / Unlock a domain 709 709 * 710 710 * Lock (or unlock) a domain, so that the member will be (not be) able to delete it … … 727 727 /* ----------------------------------------------------------------- */ 728 728 /** 729 * Add a new TLD to the list of the authorized TLDs 729 * Add a new TLD to the list of the authorized TLDs 730 730 * 731 731 * @param $tld string top-level domain to add (org, com...) … … 735 735 * 736 736 * Ajoute un nouveau TLD autorisé à la liste des tld autorisés. 737 * 737 * 738 738 * @param $tld Top-Level Domain à ajouter (org, com ...) 739 739 * @param $mode Numéro du mode autorisé (0->5) 740 740 * @return boolean True si le tld a bien été ajouté, False sinon. 741 * 742 */ 741 * 742 */ 743 743 function gettld($tld) { 744 744 global $db,$err; … … 756 756 * 757 757 * @param $current integer Value to select in the list 758 * 759 * Affiche (echo) la liste déroulante des TLD actuellement autorisés. 760 * 758 * 759 * Affiche (echo) la liste déroulante des TLD actuellement autorisés. 760 * 761 761 * @param $current Valeur par défaut à sélectionner dans la liste 762 * 762 * 763 763 */ 764 764 function selecttldmode($current=false) { … … 766 766 echo "<option value=\"$i\""; 767 767 if ($current==$i) echo " selected=\"selected\""; 768 echo ">". _($this->tldmode[$i])."</option>\n";768 echo ">".$this->tldmode[$i]."</option>\n"; 769 769 } 770 770 } … … 782 782 * 783 783 * Supprime le tld indiqué de la liste des TLD autorisés à l'installation 784 * 784 * 785 785 * <b>Note</b> : Cela ne supprime pas les domaines utilisant ce TLD ! 786 * 786 * 787 787 * @param $tld TLD que l'on souhaite détruire 788 788 * @return boolean retourne true si le TLD a bien été effacé, false sinon 789 * 789 * 790 790 */ 791 791 function deltld($tld) { … … 816 816 * 817 817 * Ajoute un TLD à la liste des TLD autorisés à l'installation 818 * 819 * @param $tld TLD que l'on souhaite autoriser. 820 * @param $mode Contrôles à effectuer sur ce TLD. <b>Note : </b> 818 * 819 * @param $tld TLD que l'on souhaite autoriser. 820 * @param $mode Contrôles à effectuer sur ce TLD. <b>Note : </b> 821 821 * Si vous demandez le controle dans le Whois, assurez-vous que m_domains 822 822 * connaisse bien comment appeler le whois du domaine correspondant ! 823 823 * @return boolean retourne true si le TLD a bien été ajouté, false sinon 824 * 824 * 825 825 */ 826 826 function addtld($tld,$mode) { … … 844 844 /* ----------------------------------------------------------------- */ 845 845 /** 846 * Modify a TLD of the list of the authorized TLDs 846 * Modify a TLD of the list of the authorized TLDs 847 847 * 848 848 * @param $tld string TLD we want to modify … … 853 853 * 854 854 * Modifie un TLD autorisé de la liste des tld autorisés. 855 * 855 * 856 856 * @param $tld Top-Level Domain à modifier (org, com ...) 857 857 * @param $mode Numéro du mode autorisé (0->5) 858 858 * @return boolean True si le tld a bien été modifié, False sinon. 859 * 859 * 860 860 */ 861 861 function edittld($tld,$mode) { alternc/trunk/bureau/class/m_mail.php
r1799 r1819 107 107 $err->log("mail","enum_doms_mails",$dom); 108 108 if($letter == "@") 109 $letter = "";109 $letter = ""; 110 110 else 111 $letter .= "%";111 $letter = "%$letter"; 112 112 $db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail LIKE '".addslashes($letter)."@".addslashes($dom)."' AND uid='$cuid' AND type=0;"); 113 113 $res=array(); $i=0; 114 114 while ($db->next_record()) { 115 if ($db->f("pop")) { 115 if ($db->f("pop")) { 116 116 $size=0; 117 117 $r=mysql_query("SELECT size FROM size_mail WHERE alias='".str_replace("@","_",$db->f("mail"))."';"); … … 121 121 if ($db->f("pop")) { 122 122 $login=str_replace("@","_",$db->f("mail")); 123 $account=str_replace($login,"",$db->f("alias")); 123 $account=str_replace($login,"",$db->f("alias")); 124 124 } else { 125 125 $account=$db->f("alias"); 126 126 } 127 $res[]=array("mail" => $db->f("mail"), "pop" => $db->f("pop"), 127 $res[]=array("mail" => $db->f("mail"), "pop" => $db->f("pop"), 128 128 "alias"=>$account,"size"=>$size); 129 129 $i++; … … 173 173 $err->log("mail","get_mail_details",$mail); 174 174 $db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail='$mail' AND uid='$cuid';"); 175 if (!$db->next_record()) { 175 if (!$db->next_record()) { 176 176 $err->raise("mail",3,$mail); 177 177 return false; 178 178 } 179 $pop=$db->f("pop"); 179 $pop=$db->f("pop"); 180 180 if ($pop) { 181 181 $login=str_replace("@","_",$db->f("mail")); 182 $account=str_replace($login,"",$db->f("alias")); 182 $account=str_replace($login,"",$db->f("alias")); 183 183 } else { 184 184 $account=$db->f("alias"); … … 392 392 $err->raise("mail",6,$dom); 393 393 return false; 394 } 394 } 395 395 $db->query("SELECT mail FROM mail_domain WHERE mail='".$mail."@".$dom."' AND uid='$cuid';"); 396 396 if ($db->next_record()) { 397 397 $err->raise("mail",7,$mail."@".$dom); 398 398 return false; 399 } 399 } 400 400 401 401 /* QuotaCheck */ … … 428 428 $err->raise("mail",3,$dom); 429 429 return false; 430 } 430 } 431 431 /* Ok, le mail existe, on le detruit donc... */ 432 432 $t=explode("@",$mail); 433 433 $mdom=$t[0]; $dom=$t[1]; 434 434 $pop=$db->f("pop"); 435 435 436 436 $db->query("DELETE FROM mail_domain WHERE mail='$mail' AND uid='$cuid';"); 437 437 … … 452 452 global $db,$err; 453 453 $db->query("SELECT * FROM mxaccount WHERE login='$login' AND pass='$pass';"); 454 if ($db->next_record()) { 454 if ($db->next_record()) { 455 455 return true; 456 456 } … … 460 460 /* ----------------------------------------------------------------- */ 461 461 /** 462 * Out (echo) the complete mx-hosted domain list : 462 * Out (echo) the complete mx-hosted domain list : 463 463 */ 464 464 function echo_domain_list() { … … 597 597 $err->raise("mail",6,$dom); 598 598 return false; 599 } 599 } 600 600 */ 601 601 … … 612 612 } 613 613 /* Effacement du domaine himself */ 614 $db->query("DELETE FROM mail_domain WHERE mail LIKE '%@$dom';"); 615 $db->query("DELETE FROM mail_users WHERE alias LIKE '%@$dom' OR alias LIKE '%\\_$dom';"); 616 $db->query("DELETE FROM mail_alias WHERE mail LIKE '%\\_$dom';"); 614 $db->query("DELETE FROM mail_domain WHERE mail LIKE '%@$dom';"); 615 $db->query("DELETE FROM mail_users WHERE alias LIKE '%@$dom' OR alias LIKE '%\\_$dom';"); 616 $db->query("DELETE FROM mail_alias WHERE mail LIKE '%\\_$dom';"); 617 617 $db->query("DELETE FROM mail_domain WHERE mail='$dom';"); 618 618 return true; … … 630 630 $err->log("mail","alternc_add_mx_domain",$dom); 631 631 $db->query("INSERT INTO mail_domain (mail,alias) VALUES ('$dom','$dom');"); 632 // Create the postmaster email for this new domain : 632 // Create the postmaster email for this new domain : 633 633 $this->add_mail($dom,"postmaster",0,"",$mem->user["mail"]); 634 634 return true; … … 657 657 * Exports all the mail related information for an account. 658 658 * @access private 659 * EXPERIMENTAL 'sid' function ;) 659 * EXPERIMENTAL 'sid' function ;) 660 660 */ 661 661 function alternc_export($tmpdir) { … … 692 692 $str.=" </address>\n"; 693 693 } 694 } 694 } 695 695 $str.=" </domain>\n"; 696 696 } … … 698 698 fclose($f); 699 699 if ($onepop) { 700 // Now do the tarball of all pop accounts : 701 exec("/bin/tar -czf ".escapeshellarg($tmpdir."/mail.tar.gz")." -T ".escapeshellarg($tmpfile)); 700 // Now do the tarball of all pop accounts : 701 exec("/bin/tar -czf ".escapeshellarg($tmpdir."/mail.tar.gz")." -T ".escapeshellarg($tmpfile)); 702 702 } 703 703 @unlink($tmpfile); … … 708 708 /* ----------------------------------------------------------------- */ 709 709 /** 710 * Returns the declaration of all xml rpc exportable functions 710 * Returns the declaration of all xml rpc exportable functions 711 711 * related to mail service. Each method is returned as an array 712 712 * containing the function name, function, signature and docstring. 713 713 * @access private 714 * EXPERIMENTAL 'sid' function ;) 714 * EXPERIMENTAL 'sid' function ;) 715 715 */ 716 716 function alternc_xmlrpc_server() {
