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

Last change on this file since 13123 was 12661, checked in by Eric, 12 years ago

Bug 2456 fixed - New feature : Avoid user connexion to the gallery until there has been no validation of registration. Users are redirected to a customizable content page.

  • Property svn:eol-style set to LF
File size: 14.0 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 
69  // Default specific parameters for UserAdvManager ConfirmMail conf
70  // ---------------------------------------------------------------
71  $defaultConfirmMail[0] = 'false';                                 // UAM_CONFIRMMAIL_TIMEOUT_TRUE/FALSE
72  $defaultConfirmMail[1] = '5';                                     // UAM_CONFIRMMAIL_DELAY
73  $defaultConfirmMail[2] = l10n('UAM_Default_CfmMail_Remail_Txt1'); // UAM_CONFIRMMAIL_REMAIL_TXT1
74  $defaultConfirmMail[3] = 'false';                                 // UAM_CONFIRMMAIL_REMAIL_TRUE/FALSE
75  $defaultConfirmMail[4] = l10n('UAM_Default_CfmMail_Remail_Txt2'); // UAM_CONFIRMMAIL_REMAIL_TXT2
76  $defaultConfirmMail[5] = l10n('UAM_Default_CfmMail_Custom_Txt1'); // UAM_CONFIRMMAIL_CUSTOM_TXT1
77  $defaultConfirmMail[6] = l10n('UAM_Default_CfmMail_Custom_Txt2'); // UAM_CONFIRMMAIL_CUSTOM_TXT2
78 
79  // Set current plugin version in config table
80  // ------------------------------------------
81  $plugin =  PluginInfos(UAM_PATH);
82  $version = $plugin['version'];
83
84/* **************************************************************** */
85/* **************** END - Data preparation in vars **************** */
86/* **************************************************************** */
87
88
89/* ***************************************************************************** */
90/* **************** BEGIN - Database actions and initialization **************** */
91/* ***************************************************************************** */
92
93  // Create UserAdvManager conf if not already exists
94  // ------------------------------------------------
95        $query = '
96SELECT param
97  FROM '.CONFIG_TABLE.'
98WHERE param = "UserAdvManager"
99;';
100  $count = pwg_db_num_rows(pwg_query($query));
101 
102  if ($count == 0)
103  {
104    $q = '
105INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
106VALUES ("UserAdvManager","'.pwg_db_real_escape_string(serialize($defaultUAM)).'","UAM parameters")
107  ;';
108    pwg_query($q);
109  }
110
111  // Create UserAdvManager_ConfirmMail conf if not already exists
112  // ------------------------------------------------------------
113        $query = '
114SELECT param
115  FROM '.CONFIG_TABLE.'
116WHERE param = "UserAdvManager_ConfirmMail"
117;';
118  $count = pwg_db_num_rows(pwg_query($query));
119 
120  if ($count == 0)
121  {
122    $q = '
123INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
124VALUES ("UserAdvManager_ConfirmMail","'.pwg_db_real_escape_string(serialize($defaultConfirmMail)).'","UAM ConfirmMail parameters")
125  ;';
126    pwg_query($q);
127  }
128
129  // Create UserAdvManager_Redir conf if not already exists
130  // ------------------------------------------------------
131        $query = '
132SELECT param
133  FROM '.CONFIG_TABLE.'
134WHERE param = "UserAdvManager_Redir"
135;';
136  $count = pwg_db_num_rows(pwg_query($query));
137 
138  if ($count == 0)
139  {
140    $q = '
141INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
142VALUES ("UserAdvManager_Redir","0","UAM Redirections")
143  ;';
144    pwg_query($q);
145  }
146
147  // Create UserAdvManager_Version conf if not already exists
148  // --------------------------------------------------------
149        $query = '
150SELECT param
151  FROM '.CONFIG_TABLE.'
152WHERE param = "UserAdvManager_Version"
153;';
154  $count = pwg_db_num_rows(pwg_query($query));
155 
156  if ($count == 0)
157  {
158    $q = '
159INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
160VALUES ("UserAdvManager_Version","'.$version.'","UAM version check")
161  ;';
162    pwg_query($q);
163  }
164
165  // Create USER_CONFIRM_MAIL_TABLE
166  // ------------------------------
167        $q = "
168CREATE TABLE IF NOT EXISTS ".USER_CONFIRM_MAIL_TABLE." (
169  id varchar(50) NOT NULL default '',
170  user_id smallint(5) NOT NULL default '0',
171  mail_address varchar(255) default NULL,
172  status enum('webmaster','admin','normal','generic','guest') default NULL,
173  date_check datetime default NULL,
174  reminder ENUM('true','false') NULL,
175PRIMARY KEY  (id)
176  )
177ENGINE=MyISAM;";
178  pwg_query($q);
179
180  // Create USER_LASTVISIT_TABLE
181  // ---------------------------
182        $q = "
183CREATE TABLE IF NOT EXISTS ".USER_LASTVISIT_TABLE." (
184  user_id SMALLINT(5) NOT NULL DEFAULT '0',
185  lastvisit DATETIME NULL DEFAULT NULL,
186  reminder ENUM('true','false') NULL,
187PRIMARY KEY (`user_id`)
188  )
189ENGINE=MyISAM;";
190  pwg_query($q);
191
192  // Piwigo's native tables modifications for password reset function - Add pwdreset column if not already exists
193  // ------------------------------------------------------------------------------------------------------------
194  $query = '
195SHOW COLUMNS FROM '.USERS_TABLE.'
196LIKE "UAM_pwdreset"
197;';
198 
199  $result = pwg_query($query);
200
201  if(!pwg_db_fetch_row($result))
202  {
203    $q = '
204ALTER TABLE '.USERS_TABLE.'
205ADD UAM_pwdreset enum("true","false")
206;';
207    pwg_query($q);
208  }
209
210/* *************************************************************************** */
211/* **************** END - Database actions and initialization **************** */
212/* *************************************************************************** */
213}
214
215
216function plugin_activate()
217{
218  global $conf;
219
220/* Cleaning obsolete files */
221/* *********************** */
222  clean_obsolete_files();
223 
224  include_once (UAM_PATH.'include/upgradedb.inc.php');
225
226/* Check if old version is < 2.15 */
227/* ****************************** */
228        $query = '
229SELECT param
230  FROM '.CONFIG_TABLE.'
231WHERE param = "nbc_UserAdvManager"
232;';
233  $count1 = pwg_db_num_rows(pwg_query($query));
234 
235  $query = '
236SELECT *
237  FROM '.CONFIG_TABLE.'
238WHERE param = "nbc_UserAdvManager_ConfirmMail"
239;';
240  $count2 = pwg_db_num_rows(pwg_query($query)); 
241
242/* If old params exist an upgrade is needed */
243/* **************************************** */
244  if ($count1 == 1)
245  {
246/* Check for upgrade from 2.10 to 2.11 */
247/* *********************************** */
248    if ($count1 == 1 and $count2 == 0)
249    {
250    /* upgrade from branch 2.10 to 2.11 */
251    /* ******************************** */
252      upgrade_210_211();
253    }
254
255
256/* Check for upgrade from 2.11 to 2.12 */
257/* *********************************** */
258    if (!table_exist(USER_LASTVISIT_TABLE))
259    {
260    /* upgrade from branch 2.11 to 2.12 */
261    /* ******************************** */
262                upgrade_211_212();
263    }
264
265
266/* Check for upgrade from 2.12 to 2.13 */
267/* *********************************** */
268    $fields = mysql_list_fields($conf['db_base'],USER_CONFIRM_MAIL_TABLE);
269    $nb_fields = mysql_num_fields($fields); 
270
271    if ($nb_fields < 6)
272    {
273    /* upgrade from branch 2.12 to 2.13 */
274    /* ******************************** */
275      upgrade_212_213();
276    }
277
278
279/* Serializing conf parameters - Available since 2.14.0 */
280/* **************************************************** */
281    if (unserialize($conf['nbc_UserAdvManager']) === false)
282    {
283    /* upgrade from branch 2.13 to 2.14 */
284    /* ******************************** */
285      upgrade_213_214();
286    }
287   
288    /* upgrade from branch 2.14 to 2.15 */
289    /* ******************************** */
290      upgrade_214_215();
291  }
292
293/* Old version is > 2.15 */
294/* ********************* */
295        $query = '
296SELECT param
297  FROM '.CONFIG_TABLE.'
298WHERE param = "UserAdvManager_Redir"
299;';
300  $count = pwg_db_num_rows(pwg_query($query));
301 
302  if ($count == 0)
303  {
304    upgrade_2153_2154();
305  }
306
307/* Check for upgrade from 2.15 to 2.16 */
308/* *********************************** */
309        $query = '
310SELECT param
311  FROM '.CONFIG_TABLE.'
312WHERE param = "UserAdvManager_Version"
313;';
314  $count = pwg_db_num_rows(pwg_query($query));
315 
316  if ($count == 0)
317  {
318    /* upgrade from branch 2.15 to 2.16 */
319    /* ******************************** */
320    upgrade_215_2160();
321  }
322
323/* Check database upgrade since version 2.16.0 */
324/* ******************************************* */
325  if (isset($conf['UserAdvManager_Version']))
326  {
327    if (version_compare($conf['UserAdvManager_Version'], '2.20.0') < 0)
328    {
329    /* upgrade from branch 2.16 to 2.20 */
330    /* ******************************** */
331      upgrade_216_220();
332    }
333   
334    if (version_compare($conf['UserAdvManager_Version'], '2.20.4') < 0)
335    {
336    /* upgrade from version 2.20.3 to 2.20.4 */
337    /* ************************************* */
338      upgrade_2203_2204();
339    }
340   
341    if (version_compare($conf['UserAdvManager_Version'], '2.20.7') < 0)
342    {
343    /* upgrade from version 2.20.4 to 2.20.7 */
344    /* ************************************* */
345      upgrade_2204_2207();
346    }
347
348    if (version_compare($conf['UserAdvManager_Version'], '2.20.8') < 0)
349    {
350    /* upgrade from version 2.20.7 to 2.20.8 */
351    /* ************************************* */
352      upgrade_2207_2208();
353    }
354
355    if (version_compare($conf['UserAdvManager_Version'], '2.30.0') < 0)
356    {
357    /* upgrade from version 2.20.8 to 2.30.0 */
358    /* ************************************* */
359      upgrade_2208_2300();
360    }
361
362    if (version_compare($conf['UserAdvManager_Version'], '2.30.2') < 0)
363    {
364    /* upgrade from version 2.30.x to 2.30.2 */
365    /* ************************************* */
366      upgrade_2300_2302();
367    }
368  }
369
370  // Update plugin version number in #_config table and check consistency of #_plugins table
371  // ---------------------------------------------------------------------------------------
372  UAM_version_update();
373
374  load_conf_from_db('param like \'UserAdvManager\\_%\'');
375}
376
377
378function plugin_uninstall()
379{
380  global $conf;
381
382  if (isset($conf['UserAdvManager']))
383  {
384    $q = '
385DELETE FROM '.CONFIG_TABLE.'
386WHERE param="UserAdvManager"
387;';
388
389    pwg_query($q);
390  }
391
392  if (isset($conf['UserAdvManager_ConfirmMail']))
393  {
394    $q = '
395DELETE FROM '.CONFIG_TABLE.'
396WHERE param="UserAdvManager_ConfirmMail"
397;';
398
399    pwg_query($q);
400  }
401
402  if (isset($conf['UserAdvManager_Redir']))
403  {
404    $q = '
405DELETE FROM '.CONFIG_TABLE.'
406WHERE param="UserAdvManager_Redir"
407;';
408
409    pwg_query($q);
410  }
411
412  if (isset($conf['UserAdvManager_Version']))
413  {
414    $q = '
415DELETE FROM '.CONFIG_TABLE.'
416WHERE param="UserAdvManager_Version"
417;';
418
419    pwg_query($q);
420  }
421
422  $q = '
423DROP TABLE '.USER_CONFIRM_MAIL_TABLE.'
424;';
425  pwg_query( $q );
426
427  $q = '
428DROP TABLE '.USER_LASTVISIT_TABLE.'
429;';
430  pwg_query( $q );
431
432  $q = '
433ALTER TABLE '.USERS_TABLE.'
434DROP UAM_pwdreset
435;';
436  pwg_query($q);
437}
438?>
Note: See TracBrowser for help on using the repository browser.