source: trunk/expressoAdmin1_2/setup/tables_update.inc.php @ 5311

Revision 5311, 11.9 KB checked in by niltonneto, 12 years ago (diff)

Ticket #2409 - Corrigido tables_update da API e dos módulos que possuem.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2        /**************************************************************************\
3        * phpGroupWare - Setup                                                     *
4        * http://www.phpgroupware.org                                              *
5        * --------------------------------------------                             *
6        * This program is free software; you can redistribute it and/or modify it  *
7        * under the terms of the GNU General Public License as published by the    *
8        * Free Software Foundation; either version 2 of the License, or (at your   *
9        * option) any later version.                                               *
10        \**************************************************************************/   
11        $test[] = '1.2';
12        function expressoAdmin1_2_upgrade1_2()
13        {
14                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '1.21';
15                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
16        }
17       
18        $test[] = '1.21';
19        function expressoAdmin1_2_upgrade1_21()
20        {
21                $oProc = $GLOBALS['phpgw_setup']->oProc;
22
23                $oProc->CreateTable(
24                        'phpgw_expressoadmin_samba', array(
25                                'fd' => array(
26                                        'samba_domain_name' => array( 'type' => 'varchar', 'precision' => 50),
27                                        'samba_domain_sid' => array( 'type' => 'varchar', 'precision' => 100)
28                                ),
29                                'pk' => array('samba_domain_name'),
30                                'fk' => array(),
31                                'ix' => array(),
32                                'uc' => array()
33                        )
34                );
35               
36                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '1.240';
37                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
38        }
39
40        $test[] = '1.240';
41        function expressoAdmin1_2_upgrade1_240()
42        {
43                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '1.250';
44                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
45        }
46       
47        $test[] = '1.250';
48        function expressoAdmin1_2_upgrade1_250()
49        {
50                $GLOBALS['phpgw_setup']->oProc->DropColumn('phpgw_expressoadmin_log','','appinfo');
51                $GLOBALS['phpgw_setup']->oProc->DropColumn('phpgw_expressoadmin_log','','groupinfo');
52                $GLOBALS['phpgw_setup']->oProc->DropColumn('phpgw_expressoadmin_log','','msg');
53                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '1.261';
54                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
55        }
56       
57        $test[] = '1.261';
58        function expressoAdmin1_2_upgrade1_261()
59        {
60                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.0.000';
61                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
62        }
63        $test[] = '2.0.000';
64        function expressoAdmin1_2_upgrade2_0_000()
65        {
66                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.0.001';
67                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
68        }
69        $test[] = '2.0.001';
70        function expressoAdmin1_2_upgrade2_0_001()
71        {
72                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.0.002';
73                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
74        }       
75        $test[] = '2.0.002';
76        function expressoAdmin1_2_upgrade2_0_002()
77        {
78                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.0.003';
79                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
80        }       
81        $test[] = '2.0.003';
82        function expressoAdmin1_2_upgrade2_0_003()
83        {
84                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.0.004';
85                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
86        }               
87        $test[] = '2.0.004';
88        function expressoAdmin1_2_upgrade2_0_004()
89        {
90                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.0.005';
91                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
92        }
93        $test[] = '2.0.005';
94        function expressoAdmin1_2_upgrade2_0_005()
95        {
96                $GLOBALS['phpgw_setup']->db->query("alter table phpgw_expressoadmin_log drop groupinfo");
97                $GLOBALS['phpgw_setup']->db->query("alter table phpgw_expressoadmin_log drop appinfo");
98                $GLOBALS['phpgw_setup']->db->query("alter table phpgw_expressoadmin_log drop msg");
99                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.1.000';
100                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
101        }
102        $test[] = '2.1.000';
103        function expressoAdmin1_2_upgrade2_1_000()
104        {
105                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.2.000';
106                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
107        }
108        $test[] = '2.2.000';
109        function expressoAdmin1_2_upgrade2_2_000()
110        {
111                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.2.1';
112                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
113        }
114        $test[] = '2.2.1';
115        function expressoAdmin1_2_upgrade2_2_1()
116        {
117                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.2.2';
118                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
119        }
120        $test[] = '2.2.2';
121        function expressoAdmin1_2_upgrade2_2_2()
122        {
123                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.2.3';
124                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
125        }
126        $test[] = '2.2.3';
127        function expressoAdmin1_2_upgrade2_2_3()
128        {
129                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.2.6';
130                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
131        }
132        $test[] = '2.2.6';
133        function expressoAdmin1_2_upgrade2_2_6()
134        {
135                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.2.8';
136                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
137        }       
138        $test[] = '2.2.8';
139        function expressoAdmin1_2_upgrade2_2_8()
140        {
141                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.3.0';
142                return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
143        }       
144        $test[] = '2.3.0';
145        function expressoAdmin1_2_upgrade2_3_0() {
146                $GLOBALS['phpgw_setup']->db->query("
147
148                    DROP SEQUENCE IF EXISTS seq_phpgw_expressoadmin_configuration;
149                    CREATE SEQUENCE seq_phpgw_expressoadmin_configuration
150                      INCREMENT 1
151                      MINVALUE 1
152                      MAXVALUE 9223372036854775807
153                      START 93
154                      CACHE 1;
155                    ALTER TABLE seq_phpgw_expressoadmin_configuration OWNER TO ".$GLOBALS['phpgw_domain']['default']['db_user'].";
156
157
158                    DROP TABLE IF EXISTS phpgw_expressoadmin_configuration;
159                    CREATE TABLE phpgw_expressoadmin_configuration
160                    (
161                      id integer NOT NULL DEFAULT nextval(('seq_phpgw_expressoadmin_configuration'::text)::regclass),
162                      email_user character varying(100),
163                      configuration_type character varying(30) NOT NULL,
164                      email_max_recipient integer DEFAULT 0,
165                      email_user_type character varying(1),
166                      email_quota integer,
167                      email_recipient character varying(50),
168                      CONSTRAINT phpgw_expressoadmin_configuration_pkey PRIMARY KEY (id)
169                    )
170                    WITH (
171                      OIDS=TRUE
172                    );
173
174                    DROP INDEX IF EXISTS configuration_type_indice;
175                    CREATE INDEX configuration_type_indice
176                      ON phpgw_expressoadmin_configuration
177                      USING btree
178                      (configuration_type);
179                    ALTER TABLE phpgw_expressoadmin_configuration CLUSTER ON configuration_type_indice;
180
181                    DROP INDEX IF EXISTS email_user_indice;
182                    CREATE INDEX email_user_indice
183                      ON phpgw_expressoadmin_configuration
184                      USING btree
185                      (email_user);
186                    ALTER TABLE phpgw_expressoadmin_configuration CLUSTER ON email_user_indice;
187
188                    DROP TABLE IF EXISTS phpgw_expressoadmin_acls;
189                    CREATE TABLE phpgw_expressoadmin_acls
190                    (
191                      manager_lid character varying(50) NOT NULL,
192                      context character varying(255) NOT NULL,
193                      acl_name character varying(255) NOT NULL
194                    )
195                    WITH (
196                      OIDS=TRUE
197                    );
198                    ALTER TABLE phpgw_expressoadmin_acls OWNER TO ".$GLOBALS['phpgw_domain']['default']['db_user'].";
199
200
201                    DROP INDEX IF EXISTS manager_lid_indice;
202                    CREATE INDEX manager_lid_indice
203                      ON phpgw_expressoadmin_acls
204                      USING btree
205                      (manager_lid);
206                    ALTER TABLE phpgw_expressoadmin_acls CLUSTER ON manager_lid_indice;
207
208
209                ");
210
211                 $GLOBALS['phpgw_setup']->db->query("SELECT * FROM phpgw_expressoadmin");
212                 $results = array();
213
214                function safeBitCheck($number,$comparison)
215        {
216                    $binNumber = base_convert($number,10,2);
217                    $binComparison = strrev(base_convert($comparison,10,2));
218                            $str = strlen($binNumber);
219
220                    if ( ($str <= strlen($binComparison)) && ($binComparison{$str-1}==="1") )
221                            return '1';
222                    else
223                            return '0';
224        }
225
226                function make_array_acl($acl)
227        {
228
229                        $array_acl_tmp = array();
230                        $tmp = array(           "acl_add_users",
231                                                                "acl_edit_users",
232                                                                "acl_delete_users",
233                                                                "acl_EMPTY1",
234                                                                "acl_add_groups",
235                                                                "acl_edit_groups",
236                                                                "acl_delete_groups",
237                                                                "acl_change_users_password",
238                                                                "acl_add_maillists",
239                                                                "acl_edit_maillists",
240                                                                "acl_delete_maillists",
241                                                                "acl_EMPTY2",
242                                                                "acl_create_sectors",
243                                                                "acl_edit_sectors",
244                                                                "acl_delete_sectors",
245                                                                "acl_edit_sambausers_attributes",
246                                                                "acl_view_global_sessions",
247                                                                "acl_view_logs",
248                                                                "acl_change_users_quote",
249                                                                "acl_set_user_default_password",
250                                                                "acl_create_computers",
251                                                                "acl_edit_computers",
252                                                                "acl_delete_computers",
253                                                                "acl_rename_users",
254                                                                "acl_edit_sambadomains",
255                                                                "acl_view_users",
256                                                                "acl_edit_email_groups",
257                                                                "acl_empty_user_inbox",
258                                                                "acl_manipulate_corporative_information",
259                                                                "acl_edit_users_picture",
260                                                                "acl_edit_scl_email_lists",
261                                                                "acl_edit_users_phonenumber",
262                                                                "acl_add_institutional_accounts",
263                                                                "acl_edit_institutional_accounts",
264                                                                "acl_remove_institutional_accounts",
265                                                                "acl_add_shared_accounts",
266                                                                "acl_edit_shared_accounts",
267                                                                "acl_delete_shared_accounts",
268                                                                "acl_edit_shared_accounts_acl",
269                                                                "acl_edit_shared_accounts_quote",
270                                                                "acl_empty_shared_accounts_inbox"
271                                                                );
272
273                        foreach ($tmp as $index => $right)
274        {
275                                $bin = '';
276                                for ($i=0; $i<$index; $i++)
277                                {
278                                        $bin .= '0';
279                                }
280                                $bin = '1' . $bin;
281
282                                $array_acl[$right] = safeBitCheck(bindec($bin), $acl);
283        }
284                        return $array_acl;
285                }
286
287                 while($GLOBALS['phpgw_setup']->db->next_record())
288                     array_push($results, $GLOBALS['phpgw_setup']->db->row());
289
290                 foreach ($results as $result)
291                 {
292                    $manager_info = make_array_acl($result['acl']);
293
294
295                   foreach ($manager_info as $info => $value)
296                    {
297                        $acl  = strstr($info, 'acl_');
298
299                        if ($acl !== false)
300        {
301
302                                $fields = array(
303                                                'manager_lid' => $result['manager_lid'],
304                                                'context' =>    $result['context'],
305                                                'acl_name' => $info,
306                                               );
307
308
309                                $GLOBALS['phpgw_setup']->db->insert('phpgw_expressoadmin_acls', $fields);
310                           
311                        }
312
313                    }
314
315                 }
316                $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'] = '2.4.0';
317            return $GLOBALS['setup_info']['expressoAdmin1_2']['currentver'];
318        }
319?>
Note: See TracBrowser for help on using the repository browser.