source: extensions/UserAdvManager/trunk/maintain.inc.php @ 17969

Last change on this file since 17969 was 17887, checked in by Eric, 12 years ago

UAM_UsrReg_Verif() function refactory - Step 1. problem still remains when $confguest_access = false;

  • Property svn:eol-style set to LF
File size: 15.6 KB
Line 
1<?php
2
3if(!defined('UAM_PATH'))
4{
5  define('UAM_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
6}
7
8include_once (UAM_PATH.'include/constants.php');
9include_once (UAM_PATH.'include/functions.inc.php');
10
11load_language('plugin.lang', UAM_PATH);
12
13
14function plugin_install()
15{
16        global $conf;
17
18/* ****************************************************************** */
19/* **************** BEGIN - Data preparation in vars **************** */
20/* ****************************************************************** */
21
22  $defaultUAM = array();
23  $defaultConfirmMail = array();
24
25  // Default global parameters for UserAdvManager conf
26  // -------------------------------------------------
27  $defaultUAM[0] = 'false';                                         // UAM_MAIL_INFO_TRUE/FALSE
28  $defaultUAM[1] = 'false';                                         // UAM_CONFIRM_MAIL_TRUE/FALSE
29  $defaultUAM[2] = '-1';                                            // UAM_No_Confirm_Group
30  $defaultUAM[3] = '-1';                                            // UAM_Validated_Group
31  $defaultUAM[4] = '-1';                                            // UAM_Validated_Status
32  $defaultUAM[5] = 'false';                                         // UAM_USERNAME_CHAR_TRUE
33  $defaultUAM[6] = '';                                              // UAM_USERNAME_CHAR_LIST
34  $defaultUAM[7] = '-1';                                            // UAM_No_Confirm_Status
35  $defaultUAM[8] = l10n('UAM_Default_InfoMail_Txt');                // UAM_MAILINFO_TEXT
36  $defaultUAM[9] = l10n('UAM_Default_ConfirmMail_Txt');             // UAM_CONFIRMMAIL_TEXT
37  $defaultUAM[10] = 'false';                                        // UAM_MAILEXCLUSION_TRUE/FALSE
38  $defaultUAM[11] = '';                                             // UAM_MAILEXCLUSION_LIST
39  $defaultUAM[12] = 'false';                                        // UAM_PASSWORDENF_TRUE/FALSE
40  $defaultUAM[13] = '100';                                          // UAM_PASSWORD_SCORE
41  $defaultUAM[14] = 'false';                                        // UAM_ADMINPASSWENF_TRUE/FALSE
42  $defaultUAM[15] = 'false';                                        // UAM_GHOSTRACKER_TRUE/FALSE
43  $defaultUAM[16] = '10';                                           // UAM_GHOSTRACKER_DAYLIMIT
44  $defaultUAM[17] = l10n('UAM_Default_GhstReminder_Txt');           // UAM_GHOSTRACKER_REMINDERTEXT
45  $defaultUAM[18] = 'false';                                        // UAM_ADDLASTVISIT_TRUE/FALSE
46  $defaultUAM[19] = 'false';                                        // UAM_ADMINCONFMAIL_TRUE/FALSE
47  $defaultUAM[20] = 'false';                                        // UAM_REDIRTOPROFILE_TRUE/FALSE
48  $defaultUAM[21] = 'false';                                        // UAM_GTAUTO_TRUE/FALSE
49  $defaultUAM[22] = 'false';                                        // UAM_GTAUTOMAIL_TRUE/FALSE
50  $defaultUAM[23] = l10n('UAM_Default_GhstDeletion_Txt');           // UAM_GTAUTODEL_TEXT
51  $defaultUAM[24] = l10n('UAM_Default_GhstDemotion_Txt');           // UAM_GTAUTOMAILTEXT
52  $defaultUAM[25] = '-1';                                           // UAM_Downgrade_Group
53  $defaultUAM[26] = '-1';                                           // UAM_Downgrade_Status
54  $defaultUAM[27] = l10n('UAM_Default_AdminValidation_Txt');        // UAM_ADMINVALIDATIONMAIL_TEXT
55  $defaultUAM[28] = 'false';                                        // UAM_CUSTOMPASSWRETR_TRUE/FALSE
56  $defaultUAM[29] = l10n('UAM_Default_PwdRequest_Txt');             // UAM_CUSTOMPASSWRETR_TEXT
57  $defaultUAM[30] = 'false';                                        // UAM_USRAUTO_TRUE/FALSE
58  $defaultUAM[31] = l10n('UAM_Default_ValidationTimeout_Txt');      // UAM_USRAUTODEL_TEXT
59  $defaultUAM[32] = 'false';                                        // UAM_USRAUTOMAIL_TRUE/FALSE
60  $defaultUAM[33] = 'false';                                        // UAM_STUFFS_TRUE/FALSE
61  $defaultUAM[34] = 'false';                                        // UAM_HIDEPASSW_TRUE/FALSE
62  $defaultUAM[35] = '-1';                                           // UAM_NO_VALID_LEVEL
63  $defaultUAM[36] = '-1';                                           // UAM_VALID_LEVEL
64  $defaultUAM[37] = '-1';                                           // UAM_DOWNGRADE_LEVEL
65  $defaultUAM[38] = 'false';                                        // UAM_PWDRESET_TRUE/FALSE
66  $defaultUAM[39] = 'false';                                        // UAM_REJECTCONNECT_TRUE/FALSE
67  $defaultUAM[40] = l10n('UAM_Default_RejectConnexion_Txt');        // UAM_REJECTCONNECT_TEXT
68  $defaultUAM[41] = l10n('UAM_Default_ConfirmMail_Subject');        // UAM_CONFIRMMAIL_SUBJECT
69  $defaultUAM[42] = l10n('UAM_Default_ConfirmMail_Remail_Subject'); // UAM_CONFIRMMAIL_REMAIL_SUBJECT
70  $defaultUAM[43] = l10n('UAM_Default_InfoMail_Subject');           // UAM_INFOMAIL_SUBJECT
71  $defaultUAM[44] = l10n('UAM_Default_GTAutoMail_Subject');         // UAM_GTAUTOMAIL_SUBJECT
72  $defaultUAM[45] = l10n('UAM_Default_GTReminder_Subject');         // UAM_GTREMINDER_SUBJECT
73  $defaultUAM[46] = l10n('UAM_Default_AdminValidationMail_Subject');// UAM_ADMINVALIDATIONMAIL_SUBJECT
74 
75  // Default specific parameters for UserAdvManager ConfirmMail conf
76  // ---------------------------------------------------------------
77  $defaultConfirmMail[0] = 'false';                                 // UAM_CONFIRMMAIL_TIMEOUT_TRUE/FALSE
78  $defaultConfirmMail[1] = '5';                                     // UAM_CONFIRMMAIL_DELAY
79  $defaultConfirmMail[2] = l10n('UAM_Default_CfmMail_Remail_Txt1'); // UAM_CONFIRMMAIL_REMAIL_TXT1
80  $defaultConfirmMail[3] = 'false';                                 // UAM_CONFIRMMAIL_REMAIL_TRUE/FALSE
81  $defaultConfirmMail[4] = l10n('UAM_Default_CfmMail_Remail_Txt2'); // UAM_CONFIRMMAIL_REMAIL_TXT2
82  $defaultConfirmMail[5] = l10n('UAM_Default_CfmMail_Custom_Txt1'); // UAM_CONFIRMMAIL_CUSTOM_TXT1
83  $defaultConfirmMail[6] = l10n('UAM_Default_CfmMail_Custom_Txt2'); // UAM_CONFIRMMAIL_CUSTOM_TXT2
84 
85  // Set current plugin version in config table
86  // ------------------------------------------
87  $plugin =  PluginInfos(UAM_PATH);
88  $version = $plugin['version'];
89
90/* **************************************************************** */
91/* **************** END - Data preparation in vars **************** */
92/* **************************************************************** */
93
94
95/* ***************************************************************************** */
96/* **************** BEGIN - Database actions and initialization **************** */
97/* ***************************************************************************** */
98
99  // Create UserAdvManager conf if not already exists
100  // ------------------------------------------------
101        $query = '
102SELECT param
103  FROM '.CONFIG_TABLE.'
104WHERE param = "UserAdvManager"
105;';
106  $count = pwg_db_num_rows(pwg_query($query));
107 
108  if ($count == 0)
109  {
110    $q = '
111INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
112VALUES ("UserAdvManager","'.pwg_db_real_escape_string(serialize($defaultUAM)).'","UAM parameters")
113  ;';
114    pwg_query($q);
115  }
116
117  // Create UserAdvManager_ConfirmMail conf if not already exists
118  // ------------------------------------------------------------
119        $query = '
120SELECT param
121  FROM '.CONFIG_TABLE.'
122WHERE param = "UserAdvManager_ConfirmMail"
123;';
124  $count = pwg_db_num_rows(pwg_query($query));
125 
126  if ($count == 0)
127  {
128    $q = '
129INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
130VALUES ("UserAdvManager_ConfirmMail","'.pwg_db_real_escape_string(serialize($defaultConfirmMail)).'","UAM ConfirmMail parameters")
131  ;';
132    pwg_query($q);
133  }
134
135  // Create UserAdvManager_Redir conf if not already exists
136  // ------------------------------------------------------
137        $query = '
138SELECT param
139  FROM '.CONFIG_TABLE.'
140WHERE param = "UserAdvManager_Redir"
141;';
142  $count = pwg_db_num_rows(pwg_query($query));
143 
144  if ($count == 0)
145  {
146    $q = '
147INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
148VALUES ("UserAdvManager_Redir","0","UAM Redirections")
149  ;';
150    pwg_query($q);
151  }
152
153  // Create UserAdvManager_Version conf if not already exists
154  // --------------------------------------------------------
155        $query = '
156SELECT param
157  FROM '.CONFIG_TABLE.'
158WHERE param = "UserAdvManager_Version"
159;';
160  $count = pwg_db_num_rows(pwg_query($query));
161 
162  if ($count == 0)
163  {
164    $q = '
165INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
166VALUES ("UserAdvManager_Version","'.$version.'","UAM version check")
167  ;';
168    pwg_query($q);
169  }
170
171  // Create USER_CONFIRM_MAIL_TABLE
172  // ------------------------------
173        $q = "
174CREATE TABLE IF NOT EXISTS ".USER_CONFIRM_MAIL_TABLE." (
175  id varchar(50) NOT NULL default '',
176  user_id smallint(5) NOT NULL default '0',
177  mail_address varchar(255) default NULL,
178  status enum('webmaster','admin','normal','generic','guest') default NULL,
179  date_check datetime default NULL,
180  reminder ENUM('true','false') NULL,
181PRIMARY KEY  (id)
182  )
183ENGINE=MyISAM;";
184  pwg_query($q);
185
186  // Create USER_LASTVISIT_TABLE
187  // ---------------------------
188        $q = "
189CREATE TABLE IF NOT EXISTS ".USER_LASTVISIT_TABLE." (
190  user_id SMALLINT(5) NOT NULL DEFAULT '0',
191  lastvisit DATETIME NULL DEFAULT NULL,
192  reminder ENUM('true','false') NULL,
193PRIMARY KEY (`user_id`)
194  )
195ENGINE=MyISAM;";
196  pwg_query($q);
197
198  // Piwigo's native tables modifications for password reset function - Add pwdreset column if not already exists
199  // ------------------------------------------------------------------------------------------------------------
200  $query = '
201SHOW COLUMNS FROM '.USERS_TABLE.'
202LIKE "UAM_pwdreset"
203;';
204 
205  $result = pwg_query($query);
206
207  if(!pwg_db_fetch_row($result))
208  {
209    $q = '
210ALTER TABLE '.USERS_TABLE.'
211ADD UAM_pwdreset enum("true","false")
212;';
213    pwg_query($q);
214  }
215
216  // Piwigo's native tables modifications for validation status
217  // ----------------------------------------------------------
218  $query = '
219SHOW COLUMNS FROM '.USERS_TABLE.'
220LIKE "UAM_validated"
221;';
222 
223  $result = pwg_query($query);
224
225  if(!pwg_db_fetch_row($result))
226  {
227    $q = '
228ALTER TABLE '.USERS_TABLE.'
229ADD UAM_validated enum("true","false")
230;';
231    pwg_query($q);
232  }
233
234/* *************************************************************************** */
235/* **************** END - Database actions and initialization **************** */
236/* *************************************************************************** */
237}
238
239
240function plugin_activate()
241{
242  global $conf;
243
244/* Cleaning obsolete files */
245/* *********************** */
246  clean_obsolete_files();
247 
248  include_once (UAM_PATH.'include/upgradedb.inc.php');
249
250/* Check if old version is < 2.15 */
251/* ****************************** */
252        $query = '
253SELECT param
254  FROM '.CONFIG_TABLE.'
255WHERE param = "nbc_UserAdvManager"
256;';
257  $count1 = pwg_db_num_rows(pwg_query($query));
258 
259  $query = '
260SELECT *
261  FROM '.CONFIG_TABLE.'
262WHERE param = "nbc_UserAdvManager_ConfirmMail"
263;';
264  $count2 = pwg_db_num_rows(pwg_query($query)); 
265
266/* If old params exist an upgrade is needed */
267/* **************************************** */
268  if ($count1 == 1)
269  {
270/* Check for upgrade from 2.10 to 2.11 */
271/* *********************************** */
272    if ($count1 == 1 and $count2 == 0)
273    {
274    /* upgrade from branch 2.10 to 2.11 */
275    /* ******************************** */
276      upgrade_210_211();
277    }
278
279
280/* Check for upgrade from 2.11 to 2.12 */
281/* *********************************** */
282    if (!table_exist(USER_LASTVISIT_TABLE))
283    {
284    /* upgrade from branch 2.11 to 2.12 */
285    /* ******************************** */
286                upgrade_211_212();
287    }
288
289
290/* Check for upgrade from 2.12 to 2.13 */
291/* *********************************** */
292    $fields = mysql_list_fields($conf['db_base'],USER_CONFIRM_MAIL_TABLE);
293    $nb_fields = mysql_num_fields($fields); 
294
295    if ($nb_fields < 6)
296    {
297    /* upgrade from branch 2.12 to 2.13 */
298    /* ******************************** */
299      upgrade_212_213();
300    }
301
302
303/* Serializing conf parameters - Available since 2.14.0 */
304/* **************************************************** */
305    if (unserialize($conf['nbc_UserAdvManager']) === false)
306    {
307    /* upgrade from branch 2.13 to 2.14 */
308    /* ******************************** */
309      upgrade_213_214();
310    }
311   
312    /* upgrade from branch 2.14 to 2.15 */
313    /* ******************************** */
314      upgrade_214_215();
315  }
316
317/* Old version is > 2.15 */
318/* ********************* */
319        $query = '
320SELECT param
321  FROM '.CONFIG_TABLE.'
322WHERE param = "UserAdvManager_Redir"
323;';
324  $count = pwg_db_num_rows(pwg_query($query));
325 
326  if ($count == 0)
327  {
328    upgrade_2153_2154();
329  }
330
331/* Check for upgrade from 2.15 to 2.16 */
332/* *********************************** */
333        $query = '
334SELECT param
335  FROM '.CONFIG_TABLE.'
336WHERE param = "UserAdvManager_Version"
337;';
338  $count = pwg_db_num_rows(pwg_query($query));
339 
340  if ($count == 0)
341  {
342    /* upgrade from branch 2.15 to 2.16 */
343    /* ******************************** */
344    upgrade_215_2160();
345  }
346
347/* Check database upgrade since version 2.16.0 */
348/* ******************************************* */
349  if (isset($conf['UserAdvManager_Version']))
350  {
351    if (version_compare($conf['UserAdvManager_Version'], '2.20.0') < 0)
352    {
353    /* upgrade from branch 2.16 to 2.20 */
354    /* ******************************** */
355      upgrade_216_220();
356    }
357   
358    if (version_compare($conf['UserAdvManager_Version'], '2.20.4') < 0)
359    {
360    /* upgrade from version 2.20.3 to 2.20.4 */
361    /* ************************************* */
362      upgrade_2203_2204();
363    }
364   
365    if (version_compare($conf['UserAdvManager_Version'], '2.20.7') < 0)
366    {
367    /* upgrade from version 2.20.4 to 2.20.7 */
368    /* ************************************* */
369      upgrade_2204_2207();
370    }
371
372    if (version_compare($conf['UserAdvManager_Version'], '2.20.8') < 0)
373    {
374    /* upgrade from version 2.20.7 to 2.20.8 */
375    /* ************************************* */
376      upgrade_2207_2208();
377    }
378
379    if (version_compare($conf['UserAdvManager_Version'], '2.30.0') < 0)
380    {
381    /* upgrade from version 2.20.8 to 2.30.0 */
382    /* ************************************* */
383      upgrade_2208_2300();
384    }
385
386    if (version_compare($conf['UserAdvManager_Version'], '2.30.2') < 0)
387    {
388    /* upgrade from version 2.30.x to 2.30.2 */
389    /* ************************************* */
390      upgrade_2300_2302();
391    }
392
393    if (version_compare($conf['UserAdvManager_Version'], '2.40.0') < 0)
394    {
395    /* upgrade from version 2.30.x to 2.40.0 */
396    /* ************************************* */
397      upgrade_2300_2400();
398    }
399
400    if (version_compare($conf['UserAdvManager_Version'], '2.41.0') < 0)
401    {
402    /* upgrade from version 2.40.x to 2.41.0 */
403    /* ************************************* */
404      upgrade_2400_2410();
405    }
406  }
407
408  // Update plugin version number in #_config table and check consistency of #_plugins table
409  // ---------------------------------------------------------------------------------------
410  UAM_version_update();
411
412  load_conf_from_db('param like \'UserAdvManager\\_%\'');
413}
414
415
416function plugin_uninstall()
417{
418  global $conf;
419
420  if (isset($conf['UserAdvManager']))
421  {
422    $q = '
423DELETE FROM '.CONFIG_TABLE.'
424WHERE param="UserAdvManager"
425;';
426
427    pwg_query($q);
428  }
429
430  if (isset($conf['UserAdvManager_ConfirmMail']))
431  {
432    $q = '
433DELETE FROM '.CONFIG_TABLE.'
434WHERE param="UserAdvManager_ConfirmMail"
435;';
436
437    pwg_query($q);
438  }
439
440  if (isset($conf['UserAdvManager_Redir']))
441  {
442    $q = '
443DELETE FROM '.CONFIG_TABLE.'
444WHERE param="UserAdvManager_Redir"
445;';
446
447    pwg_query($q);
448  }
449
450  if (isset($conf['UserAdvManager_Version']))
451  {
452    $q = '
453DELETE FROM '.CONFIG_TABLE.'
454WHERE param="UserAdvManager_Version"
455;';
456
457    pwg_query($q);
458  }
459
460  $q = '
461DROP TABLE '.USER_CONFIRM_MAIL_TABLE.'
462;';
463  pwg_query( $q );
464
465  $q = '
466DROP TABLE '.USER_LASTVISIT_TABLE.'
467;';
468  pwg_query( $q );
469
470  $q = '
471ALTER TABLE '.USERS_TABLE.'
472DROP UAM_pwdreset
473;';
474  pwg_query($q);
475
476  $q = '
477ALTER TABLE '.USERS_TABLE.'
478DROP UAM_validated
479;';
480  pwg_query($q);
481}
482?>
Note: See TracBrowser for help on using the repository browser.