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
RevLine 
[3742]1<?php
2
[6255]3if(!defined('UAM_PATH'))
4{
5  define('UAM_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
6}
[3742]7
[5181]8include_once (UAM_PATH.'include/constants.php');
9include_once (UAM_PATH.'include/functions.inc.php');
[3742]10
[12271]11load_language('plugin.lang', UAM_PATH);
[5064]12
[12271]13
[3742]14function plugin_install()
15{
[3872]16        global $conf;
[12247]17
18/* ****************************************************************** */
19/* **************** BEGIN - Data preparation in vars **************** */
20/* ****************************************************************** */
21
[12271]22  $defaultUAM = array();
23  $defaultConfirmMail = array();
24
[12247]25  // Default global parameters for UserAdvManager conf
[12271]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
[12661]66  $defaultUAM[39] = 'false';                                  // UAM_REJECTCONNECT_TRUE/FALSE
67  $defaultUAM[40] = l10n('UAM_Default_RejectConnexion_Txt');  // UAM_REJECTCONNECT_TEXT
[12271]68 
[12247]69  // Default specific parameters for UserAdvManager ConfirmMail conf
[12271]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 
[12247]79  // Set current plugin version in config table
[12271]80  // ------------------------------------------
[12247]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
[12271]94  // ------------------------------------------------
[9853]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 = '
[4143]105INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
[12271]106VALUES ("UserAdvManager","'.pwg_db_real_escape_string(serialize($defaultUAM)).'","UAM parameters")
[5056]107  ;';
[9853]108    pwg_query($q);
109  }
[4143]110
[12247]111  // Create UserAdvManager_ConfirmMail conf if not already exists
[12271]112  // ------------------------------------------------------------
[9853]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 = '
[4143]123INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
[12271]124VALUES ("UserAdvManager_ConfirmMail","'.pwg_db_real_escape_string(serialize($defaultConfirmMail)).'","UAM ConfirmMail parameters")
[5056]125  ;';
[9853]126    pwg_query($q);
127  }
128
[12247]129  // Create UserAdvManager_Redir conf if not already exists
[12271]130  // ------------------------------------------------------
[9853]131        $query = '
132SELECT param
133  FROM '.CONFIG_TABLE.'
134WHERE param = "UserAdvManager_Redir"
135;';
136  $count = pwg_db_num_rows(pwg_query($query));
[6775]137 
[9853]138  if ($count == 0)
139  {
140    $q = '
[6775]141INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
142VALUES ("UserAdvManager_Redir","0","UAM Redirections")
143  ;';
[9853]144    pwg_query($q);
145  }
[5056]146
[12247]147  // Create UserAdvManager_Version conf if not already exists
[12271]148  // --------------------------------------------------------
[9853]149        $query = '
150SELECT param
151  FROM '.CONFIG_TABLE.'
[11095]152WHERE param = "UserAdvManager_Version"
[9853]153;';
154  $count = pwg_db_num_rows(pwg_query($query));
155 
156  if ($count == 0)
157  {
158    $q = '
[9846]159INSERT INTO '.CONFIG_TABLE.' (param, value, comment)
160VALUES ("UserAdvManager_Version","'.$version.'","UAM version check")
161  ;';
[9853]162    pwg_query($q);
163  }
[5056]164
[12247]165  // Create USER_CONFIRM_MAIL_TABLE
[12271]166  // ------------------------------
[3742]167        $q = "
[4143]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,
[4380]174  reminder ENUM('true','false') NULL,
[4143]175PRIMARY KEY  (id)
176  )
[9090]177ENGINE=MyISAM;";
[3742]178  pwg_query($q);
[4135]179
[12247]180  // Create USER_LASTVISIT_TABLE
[12271]181  // ---------------------------
[4135]182        $q = "
[4143]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  )
[9090]189ENGINE=MyISAM;";
[4135]190  pwg_query($q);
[12239]191
[12247]192  // Piwigo's native tables modifications for password reset function - Add pwdreset column if not already exists
[12271]193  // ------------------------------------------------------------------------------------------------------------
[12239]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  }
[12247]209
210/* *************************************************************************** */
211/* **************** END - Database actions and initialization **************** */
212/* *************************************************************************** */
[3742]213}
214
[5064]215
[3872]216function plugin_activate()
217{
[5064]218  global $conf;
[5056]219
[4952]220/* Cleaning obsolete files */
[5064]221/* *********************** */
222  clean_obsolete_files();
[5762]223 
224  include_once (UAM_PATH.'include/upgradedb.inc.php');
[5056]225
[5762]226/* Check if old version is < 2.15 */
227/* ****************************** */
[5593]228        $query = '
229SELECT param
230  FROM '.CONFIG_TABLE.'
[5762]231WHERE param = "nbc_UserAdvManager"
[5593]232;';
[6251]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)); 
[5056]241
[5593]242/* If old params exist an upgrade is needed */
243/* **************************************** */
[6251]244  if ($count1 == 1)
[5593]245  {
[4380]246/* Check for upgrade from 2.10 to 2.11 */
[5064]247/* *********************************** */
[6251]248    if ($count1 == 1 and $count2 == 0)
[5593]249    {
250    /* upgrade from branch 2.10 to 2.11 */
251    /* ******************************** */
[5762]252      upgrade_210_211();
[5593]253    }
[4135]254
[4380]255
256/* Check for upgrade from 2.11 to 2.12 */
[5064]257/* *********************************** */
[5593]258    if (!table_exist(USER_LASTVISIT_TABLE))
259    {
260    /* upgrade from branch 2.11 to 2.12 */
261    /* ******************************** */
[5762]262                upgrade_211_212();
[5593]263    }
[4380]264
265
266/* Check for upgrade from 2.12 to 2.13 */
[5064]267/* *********************************** */
[5593]268    $fields = mysql_list_fields($conf['db_base'],USER_CONFIRM_MAIL_TABLE);
269    $nb_fields = mysql_num_fields($fields); 
[4380]270
[5593]271    if ($nb_fields < 6)
272    {
273    /* upgrade from branch 2.12 to 2.13 */
274    /* ******************************** */
[5762]275      upgrade_212_213();
[5593]276    }
[5056]277
278
[5064]279/* Serializing conf parameters - Available since 2.14.0 */
280/* **************************************************** */
[5593]281    if (unserialize($conf['nbc_UserAdvManager']) === false)
282    {
283    /* upgrade from branch 2.13 to 2.14 */
284    /* ******************************** */
[5762]285      upgrade_213_214();
[5593]286    }
[5762]287   
[6251]288    /* upgrade from branch 2.14 to 2.15 */
289    /* ******************************** */
290      upgrade_214_215();
291  }
292
[6775]293/* Old version is > 2.15 */
294/* ********************* */
295        $query = '
[5181]296SELECT param
297  FROM '.CONFIG_TABLE.'
[6775]298WHERE param = "UserAdvManager_Redir"
[5181]299;';
[6251]300  $count = pwg_db_num_rows(pwg_query($query));
[5181]301 
[6775]302  if ($count == 0)
[6251]303  {
[6775]304    upgrade_2153_2154();
[5593]305  }
[6354]306
[8065]307/* Check for upgrade from 2.15 to 2.16 */
308/* *********************************** */
[7955]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  {
[8065]318    /* upgrade from branch 2.15 to 2.16 */
319    /* ******************************** */
320    upgrade_215_2160();
[7955]321  }
322
[10957]323/* Check database upgrade since version 2.16.0 */
[12271]324/* ******************************************* */
[10957]325  if (isset($conf['UserAdvManager_Version']))
[9135]326  {
[10957]327    if (version_compare($conf['UserAdvManager_Version'], '2.20.0') < 0)
328    {
[9135]329    /* upgrade from branch 2.16 to 2.20 */
330    /* ******************************** */
[10957]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    }
[11018]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    }
[12189]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    }
[12661]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    }
[9135]368  }
369
[10706]370  // Update plugin version number in #_config table and check consistency of #_plugins table
[12271]371  // ---------------------------------------------------------------------------------------
[10144]372  UAM_version_update();
373
374  load_conf_from_db('param like \'UserAdvManager\\_%\'');
[3872]375}
[3742]376
[4135]377
[3742]378function plugin_uninstall()
379{
380  global $conf;
381
[5181]382  if (isset($conf['UserAdvManager']))
[3742]383  {
384    $q = '
[4143]385DELETE FROM '.CONFIG_TABLE.'
[5181]386WHERE param="UserAdvManager"
[4143]387;';
[3742]388
389    pwg_query($q);
390  }
391
[5181]392  if (isset($conf['UserAdvManager_ConfirmMail']))
[3881]393  {
394    $q = '
[4143]395DELETE FROM '.CONFIG_TABLE.'
[5181]396WHERE param="UserAdvManager_ConfirmMail"
[4143]397;';
[3742]398
[3881]399    pwg_query($q);
400  }
401
[6822]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
[8110]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
[12239]422  $q = '
423DROP TABLE '.USER_CONFIRM_MAIL_TABLE.'
424;';
[3742]425  pwg_query( $q );
[4135]426
[12239]427  $q = '
428DROP TABLE '.USER_LASTVISIT_TABLE.'
429;';
[4135]430  pwg_query( $q );
[12239]431
432  $q = '
433ALTER TABLE '.USERS_TABLE.'
434DROP UAM_pwdreset
435;';
436  pwg_query($q);
[3742]437}
438?>
Note: See TracBrowser for help on using the repository browser.