source: trunk/alternc/patches/class/m_mail_egw.php @ 269

Last change on this file since 269 was 269, checked in by sebas, 13 years ago

los dominios con sub-dominios vuelven a funcionar con los grupos secundarios + reorganisacion + documentacion de las variables"

File size: 4.2 KB
Line 
1<?
2require_once("m_mail.php");
3
4class m_mail_egw extends m_mail {
5
6        function _createpop($mail,$dom,$pass) {
7       
8                if ($this->_add_egw_account($mail,$dom,$pass) )
9                        if (parent::_createpop($mail,$dom,$pass))
10                                return true;
11                        else
12                                return false;
13                else
14                        return false;
15        }
16
17        function _deletepop($mail,$dom) {
18       
19                if ($this->_del_egw_account($mail,$dom) )
20                        if (parent::_deletepop($mail,$dom))
21                                return true;
22                        else
23                                return false;
24                else
25                        return false;
26        }
27
28        function _updatepop($mail,$dom,$pass) {
29       
30                if ($this->_update_passwd_egw_account($mail,$dom,$pass) )
31                        if (parent::_updatepop($mail,$dom,$pass))
32                                return true;
33                        else
34                                return false;
35                else
36                        return false;
37        }
38
39        function _add_egw_account($mail,$dom,$pass) {
40
41                $res = true;
42                $domain = explode('.',$dom);
43                $size = count($domain);
44                if (  $size >= 3 && 
45                        $domain[$size-3] == "cta" &&
46                        $domain[$size-2] == "org" &&
47                        $domain[$size-1] == "ar" ) {
48
49                        $admincli= $GLOBALS["L_EGW_ADMINCLI"];
50                        $command= "--edit-user";                        // Command to be performed
51                        $adminuser = $GLOBALS["L_EGW_ADMINUSER"];
52                        $adminclave = $GLOBALS["L_EGW_ADMINCLAVE"];
53                        $firstname = $mail;                             // the left side of the email
54                        $lastname= "-";                                 // we have a generic lastname
55                        $email = $account = $mail ."@" .$dom;           // account and email are the same
56                        $expires= "never";
57                        $canchangepw= "yes";
58                        $anonuser= "no";
59                        $primarygroup = $domain[$size-3];               // domains in .ar starts at the third level
60                        $secondarygroup = $domain[$size-4];             // the sub-domain is used as a secondary group
61                        $homedir = "/home/". $mail ."_" .$dom;          // everyone can have a home   
62                        $loginshell = "/bin/bash";                      // everyone can have a shell
63
64                        $go= $admincli ." " .$command ." " .$adminuser ."," .$adminclave .",\"" .$account ."\"," .$firstname ."," .$lastname ."," .$pass .",\"" .$email ."\"," .$expires ."," .$canchangepw ."," .$anonuser ."," .$primarygroup ;
65                       
66                        if (isset($secondarygroup)) {
67                        $go= $go ."," .$secondarygroup ;
68                        }
69
70                        $go= $go ."," .$homedir ."," .$loginshell ;
71
72                        echo "<h3>Creamos la cuenta en la base ldap</h3>";
73                        //echo $go;
74                        // exit();
75                        $cod = exec($go);
76                        if ($cod)
77                        {
78                         // die ($cod);
79                         echo "<p class=\"error\">";
80                         echo $cod;
81                         echo "</p>";
82                         //$res = false;
83                        }       
84                }
85                return $res;
86        }       
87
88        function _del_egw_account($mail,$dom) {
89
90                $res = true;
91                $domain = explode('.',$dom);
92                $size = count($domain);
93                if (  $size >= 3 && 
94                        $domain[$size-3] == "cta" &&
95                        $domain[$size-2] == "org" &&
96                        $domain[$size-1] == "ar" ) {
97
98                        $admincli= $GLOBALS["L_EGW_ADMINCLI"];
99                        $command= "--delete-user";                        // Command to be performed
100                        $adminuser = $GLOBALS["L_EGW_ADMINUSER"];
101                        $adminclave = $GLOBALS["L_EGW_ADMINCLAVE"];
102                        $email = $account = $mail ."@" .$dom;
103
104                        $go= $admincli ." " .$command ." " .$adminuser ."," .$adminclave .",\"" .$account ."\"" ;
105                       
106                        echo "<h3>Borramos la cuanta en la base ldap</h3>";
107                        //echo $go;
108                        // exit();
109                        $cod = exec($go);
110                        if ($cod)
111                        {
112                         // die ($cod);
113                         echo "<p class=\"error\">";
114                         echo $cod;
115                         echo "</p>";
116                         //$res = false;
117                        }       
118                }
119                return $res;
120        }       
121
122        function _update_passwd_egw_account($mail,$dom,$pass) {
123
124                $res = true;
125                $domain = explode('.',$dom);
126                $size = count($domain);
127                if (  $size >= 3 && 
128                        $domain[$size-3] == "cta" &&
129                        $domain[$size-2] == "org" &&
130                        $domain[$size-1] == "ar" ) {
131
132                        $admincli= $GLOBALS["L_EGW_ADMINCLI"];
133                        $command= "--change-pw";                        // Command to be performed
134                        $adminuser = $GLOBALS["L_EGW_ADMINUSER"];
135                        $adminclave = $GLOBALS["L_EGW_ADMINCLAVE"];
136                        $email = $account = $mail ."@" .$dom;
137
138                        $go= $admincli ." " .$command ." " .$adminuser ."," .$adminclave .",\"" .$account ."\"," .$pass ;
139                       
140                        echo "<h3>Actualizamos la contrasena en la base ldap</h3>";
141                        //echo $go;
142                        // exit();
143                        $cod = exec($go);
144                        if ($cod)
145                        {
146                         // die ($cod);
147                         echo "<p class=\"error\">";
148                         echo $cod;
149                         echo "</p>";
150                         //$res = false;
151                        }       
152                }
153                return $res;
154        }       
155}
156
157?>
Note: See TracBrowser for help on using the repository browser.