aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2006-11-06 22:55:38 +0000
committerplegall <plg@piwigo.org>2006-11-06 22:55:38 +0000
commite4606c00b04bb58e18fdf744567d1d329658719d (patch)
tree498b6d9b4965e72ea37a3d0c9735075b5e37bd16
parent967f476b6bb6c3126753045b40a802d40995d647 (diff)
Bug fixed: #users.auto_login_key moved to #user_infos.auto_login_key because
table users does not contain information specificaly related to PhpWebGallery. With auto_login_key field in #users, external authentication won't work. Warning: when updating with subversion, you'll have to go directly to upgrade_feed.php git-svn-id: http://piwigo.org/svn/branches/branch-1_6@1594 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--include/functions_user.inc.php14
-rw-r--r--install/db/22.9-database.php84
2 files changed, 91 insertions, 7 deletions
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index 0a3991574..d59fed3ab 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -605,8 +605,8 @@ function log_user($user_id, $remember_me)
// search for an existing auto_login_key
$query = '
SELECT auto_login_key
- FROM '.USERS_TABLE.'
- WHERE '.$conf['user_fields']['id'].' = '.$user_id.'
+ FROM '.USER_INFOS_TABLE.'
+ WHERE user_id = '.$user_id.'
;';
$auto_login_key = current(mysql_fetch_assoc(pwg_query($query)));
@@ -614,9 +614,9 @@ SELECT auto_login_key
{
$auto_login_key = base64_encode(md5(uniqid(rand(), true)));
$query = '
-UPDATE '.USERS_TABLE.'
- SET auto_login_key=\''.$auto_login_key.'\'
- WHERE '.$conf['user_fields']['id'].' = '.$user_id.'
+UPDATE '.USER_INFOS_TABLE.'
+ SET auto_login_key = \''.$auto_login_key.'\'
+ WHERE user_id = '.$user_id.'
;';
pwg_query($query);
}
@@ -658,8 +658,8 @@ function auto_login() {
$query = '
SELECT auto_login_key
- FROM '.USERS_TABLE.'
- WHERE '.$conf['user_fields']['id'].' = '.$cookie['id'].'
+ FROM '.USER_INFOS_TABLE.'
+ WHERE user_id = '.$cookie['id'].'
;';
$auto_login_key = current(mysql_fetch_assoc(pwg_query($query)));
diff --git a/install/db/22.9-database.php b/install/db/22.9-database.php
new file mode 100644
index 000000000..7a50dbc59
--- /dev/null
+++ b/install/db/22.9-database.php
@@ -0,0 +1,84 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | branch : BSF (Best So Far)
+// | file : $RCSfile$
+// | last update : $Date: 2006-07-23 14:17:00 +0200 (dim, 23 jui 2006) $
+// | last modifier : $Author: nikrou $
+// | revision : $Revision: 1492 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify |
+// | it under the terms of the GNU General Public License as published by |
+// | the Free Software Foundation |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH'))
+{
+ die('Hacking attempt!');
+}
+
+$upgrade_description = '#users.auto_login_key to #user_infos.auto_login_key';
+
+$query = '
+ALTER TABLE '.PREFIX_TABLE.'user_infos
+ ADD auto_login_key varchar(64) NOT NULL
+;';
+pwg_query($query);
+
+include(PHPWG_ROOT_PATH . 'include/config_default.inc.php');
+@include(PHPWG_ROOT_PATH. 'include/config_local.inc.php');
+
+$query = '
+SELECT '.$conf['user_fields']['id'].' AS uid, auto_login_key
+ FROM '.PREFIX_TABLE.'users
+ WHERE auto_login_key != \'\'
+;';
+$result = pwg_query($query);
+
+$datas = array();
+
+while ($row = mysql_fetch_array($result))
+{
+ array_push(
+ $datas,
+ array(
+ 'user_id' => $row['uid'],
+ 'auto_login_key' => $row['auto_login_key'],
+ )
+ );
+}
+
+mass_updates(
+ PREFIX_TABLE.'user_infos',
+ array(
+ 'primary' => array('user_id'),
+ 'update' => array('auto_login_key')
+ ),
+ $datas
+ );
+
+$query = '
+ALTER TABLE '.PREFIX_TABLE.'users
+ DROP COLUMN auto_login_key
+;';
+pwg_query($query);
+
+echo
+"\n"
+. $upgrade_description
+."\n"
+;
+?>