Step 4 improvement issue 0000301:
o Correction lock categories and is_admin (functions with parameters now) o Cannot use check_status with upgrade.php and upgrade_feed.php => New function check_upgrade use in upgrade*.php (new functionality for upgrade_feed.php) o upgrade_feed.php is showed only for administrator user git-svn-id: http://piwigo.org/svn/trunk@1075 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
6163dccab3
commit
ade00c95c2
5 changed files with 118 additions and 70 deletions
44
admin/include/functions_upgrade.php
Normal file
44
admin/include/functions_upgrade.php
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
<?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-03-09 00:14:53 +0100 (jeu., 09 mars 2006) $
|
||||||
|
// | last modifier : $Author: rub $
|
||||||
|
// | revision : $Revision: 1070 $
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
// | 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. |
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
|
||||||
|
function check_upgrade()
|
||||||
|
{
|
||||||
|
// Is PhpWebGallery already installed ?
|
||||||
|
if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE)
|
||||||
|
{
|
||||||
|
$message = 'PhpWebGallery is not in upgrade mode. In include/mysql.inc.php,
|
||||||
|
insert line
|
||||||
|
<pre style="background-color:lightgray">
|
||||||
|
define(\'PHPWG_IN_UPGRADE\', true);
|
||||||
|
</pre>
|
||||||
|
if you want to upgrade';
|
||||||
|
die($message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
|
@ -2,7 +2,7 @@
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | PhpWebGallery - a PHP based picture gallery |
|
// | PhpWebGallery - a PHP based picture gallery |
|
||||||
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
||||||
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
|
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | branch : BSF (Best So Far)
|
// | branch : BSF (Best So Far)
|
||||||
// | file : $RCSfile$
|
// | file : $RCSfile$
|
||||||
|
@ -132,31 +132,6 @@ or die ( "Could not connect to database server" );
|
||||||
mysql_select_db( $cfgBase )
|
mysql_select_db( $cfgBase )
|
||||||
or die ( "Could not connect to database" );
|
or die ( "Could not connect to database" );
|
||||||
|
|
||||||
if ($conf['check_upgrade_feed'])
|
|
||||||
{
|
|
||||||
// retrieve already applied upgrades
|
|
||||||
$query = '
|
|
||||||
SELECT id
|
|
||||||
FROM '.UPGRADE_TABLE.'
|
|
||||||
;';
|
|
||||||
$applied = array_from_query($query, 'id');
|
|
||||||
|
|
||||||
// retrieve existing upgrades
|
|
||||||
$existing = get_available_upgrade_ids();
|
|
||||||
|
|
||||||
// which upgrades need to be applied?
|
|
||||||
if (count(array_diff($existing, $applied)) > 0)
|
|
||||||
{
|
|
||||||
ob_start();// buffer output so that cookies work
|
|
||||||
echo
|
|
||||||
'<p>'
|
|
||||||
.'Some database upgrades are missing, '
|
|
||||||
.'<a href="'.PHPWG_ROOT_PATH.'upgrade_feed.php">upgrade now</a>'
|
|
||||||
.'</p>'
|
|
||||||
;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Setup gallery wide options, if this fails then we output a CRITICAL_ERROR
|
// Setup gallery wide options, if this fails then we output a CRITICAL_ERROR
|
||||||
// since basic gallery information is not available
|
// since basic gallery information is not available
|
||||||
|
@ -190,6 +165,31 @@ while ( $row =mysql_fetch_array( $result ) )
|
||||||
|
|
||||||
include(PHPWG_ROOT_PATH.'include/user.inc.php');
|
include(PHPWG_ROOT_PATH.'include/user.inc.php');
|
||||||
|
|
||||||
|
if (is_admin() and $conf['check_upgrade_feed'])
|
||||||
|
{
|
||||||
|
// retrieve already applied upgrades
|
||||||
|
$query = '
|
||||||
|
SELECT id
|
||||||
|
FROM '.UPGRADE_TABLE.'
|
||||||
|
;';
|
||||||
|
$applied = array_from_query($query, 'id');
|
||||||
|
|
||||||
|
// retrieve existing upgrades
|
||||||
|
$existing = get_available_upgrade_ids();
|
||||||
|
|
||||||
|
// which upgrades need to be applied?
|
||||||
|
if (count(array_diff($existing, $applied)) > 0)
|
||||||
|
{
|
||||||
|
ob_start();// buffer output so that cookies work
|
||||||
|
echo
|
||||||
|
'<p>'
|
||||||
|
.'Some database upgrades are missing, '
|
||||||
|
.'<a href="'.PHPWG_ROOT_PATH.'upgrade_feed.php">upgrade now</a>'
|
||||||
|
.'</p>'
|
||||||
|
;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// language files
|
// language files
|
||||||
include_once(get_language_filepath('common.lang.php'));
|
include_once(get_language_filepath('common.lang.php'));
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | PhpWebGallery - a PHP based picture gallery |
|
// | PhpWebGallery - a PHP based picture gallery |
|
||||||
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
||||||
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
|
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | branch : BSF (Best So Far)
|
// | branch : BSF (Best So Far)
|
||||||
// | file : $RCSfile$
|
// | file : $RCSfile$
|
||||||
|
@ -277,6 +277,8 @@ DELETE FROM '.FAVORITES_TABLE.'
|
||||||
*/
|
*/
|
||||||
function calculate_permissions($user_id, $user_status)
|
function calculate_permissions($user_id, $user_status)
|
||||||
{
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
$private_array = array();
|
$private_array = array();
|
||||||
$authorized_array = array();
|
$authorized_array = array();
|
||||||
|
|
||||||
|
@ -292,7 +294,7 @@ SELECT id
|
||||||
}
|
}
|
||||||
|
|
||||||
// if user is not an admin, locked categories can be considered as private$
|
// if user is not an admin, locked categories can be considered as private$
|
||||||
if (!is_admin())
|
if (!is_admin($user_status))
|
||||||
{
|
{
|
||||||
$query = '
|
$query = '
|
||||||
SELECT id
|
SELECT id
|
||||||
|
@ -541,36 +543,38 @@ function log_user($user_id, $remember_me)
|
||||||
* Test does with user status
|
* Test does with user status
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function is_autorize_status($access_type)
|
function is_autorize_status($access_type, $user_status = '')
|
||||||
{
|
{
|
||||||
global $user;
|
global $user;
|
||||||
|
|
||||||
$access_type_status = ACCESS_NONE;
|
if (($user_status == '') and isset($user['status']))
|
||||||
if (isset($user['status']))
|
|
||||||
{
|
{
|
||||||
switch ($user['status'])
|
$user_status = $user['status'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$access_type_status = ACCESS_NONE;
|
||||||
|
switch ($user_status)
|
||||||
|
{
|
||||||
|
case 'guest':
|
||||||
|
case 'generic':
|
||||||
{
|
{
|
||||||
case 'guest':
|
$access_type_status = ACCESS_GUEST;
|
||||||
case 'generic':
|
break;
|
||||||
{
|
}
|
||||||
$access_type_status = ACCESS_GUEST;
|
case 'normal':
|
||||||
break;
|
{
|
||||||
}
|
$access_type_status = ACCESS_CLASSIC;
|
||||||
case 'normal':
|
break;
|
||||||
{
|
}
|
||||||
$access_type_status = ACCESS_CLASSIC;
|
case 'admin':
|
||||||
break;
|
{
|
||||||
}
|
$access_type_status = ACCESS_ADMINISTRATOR;
|
||||||
case 'admin':
|
break;
|
||||||
{
|
}
|
||||||
$access_type_status = ACCESS_ADMINISTRATOR;
|
case 'webmaster':
|
||||||
break;
|
{
|
||||||
}
|
$access_type_status = ACCESS_WEBMASTER;
|
||||||
case 'webmaster':
|
break;
|
||||||
{
|
|
||||||
$access_type_status = ACCESS_WEBMASTER;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,11 +587,11 @@ function is_autorize_status($access_type)
|
||||||
* Test does with user status
|
* Test does with user status
|
||||||
* @return none
|
* @return none
|
||||||
*/
|
*/
|
||||||
function check_status($access_type)
|
function check_status($access_type, $user_status = '')
|
||||||
{
|
{
|
||||||
global $lang;
|
global $lang;
|
||||||
|
|
||||||
if (!is_autorize_status($access_type))
|
if (!is_autorize_status($access_type, $user_status))
|
||||||
{
|
{
|
||||||
echo '<div style="text-align:center;">'.$lang['access_forbiden'].'<br />';
|
echo '<div style="text-align:center;">'.$lang['access_forbiden'].'<br />';
|
||||||
echo '<a href="'.PHPWG_ROOT_PATH.'identification.php">'.$lang['identification'].'</a></div>';
|
echo '<a href="'.PHPWG_ROOT_PATH.'identification.php">'.$lang['identification'].'</a></div>';
|
||||||
|
@ -599,9 +603,9 @@ function check_status($access_type)
|
||||||
* Return if current user is an administrator
|
* Return if current user is an administrator
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function is_admin()
|
function is_admin($user_status = '')
|
||||||
{
|
{
|
||||||
return is_autorize_status(ACCESS_ADMINISTRATOR);
|
return is_autorize_status(ACCESS_ADMINISTRATOR, $user_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
18
upgrade.php
18
upgrade.php
|
@ -2,7 +2,7 @@
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | PhpWebGallery - a PHP based picture gallery |
|
// | PhpWebGallery - a PHP based picture gallery |
|
||||||
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
||||||
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
|
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | branch : BSF (Best So Far)
|
// | branch : BSF (Best So Far)
|
||||||
// | file : $RCSfile$
|
// | file : $RCSfile$
|
||||||
|
@ -32,17 +32,11 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
|
||||||
include(PHPWG_ROOT_PATH.'include/template.php');
|
include(PHPWG_ROOT_PATH.'include/template.php');
|
||||||
|
|
||||||
include(PHPWG_ROOT_PATH.'include/mysql.inc.php');
|
include(PHPWG_ROOT_PATH.'include/mysql.inc.php');
|
||||||
// Is PhpWebGallery already installed ?
|
|
||||||
if (!defined('PHPWG_IN_UPGRADE') or !PHPWG_IN_UPGRADE)
|
// +-----------------------------------------------------------------------+
|
||||||
{
|
// | Check Access and exit when it is not ok |
|
||||||
$message = 'PhpWebGallery is not in upgrade mode. In include/mysql.inc.php,
|
// +-----------------------------------------------------------------------+
|
||||||
insert line
|
check_upgrade();
|
||||||
<pre style="background-color:lightgray">
|
|
||||||
define(\'PHPWG_IN_UPGRADE\', true);
|
|
||||||
</pre>
|
|
||||||
if you want to upgrade';
|
|
||||||
die($message);
|
|
||||||
}
|
|
||||||
|
|
||||||
// concerning upgrade, we use the default users table
|
// concerning upgrade, we use the default users table
|
||||||
$conf['users_table'] = $prefixeTable.'users';
|
$conf['users_table'] = $prefixeTable.'users';
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | PhpWebGallery - a PHP based picture gallery |
|
// | PhpWebGallery - a PHP based picture gallery |
|
||||||
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
|
||||||
// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
|
// | Copyright (C) 2003-2006 PhpWebGallery Team - http://phpwebgallery.net |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | branch : BSF (Best So Far)
|
// | branch : BSF (Best So Far)
|
||||||
// | file : $RCSfile$
|
// | file : $RCSfile$
|
||||||
|
@ -29,9 +29,15 @@ define('PHPWG_ROOT_PATH', './');
|
||||||
|
|
||||||
include_once(PHPWG_ROOT_PATH.'include/functions.inc.php');
|
include_once(PHPWG_ROOT_PATH.'include/functions.inc.php');
|
||||||
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
|
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
|
||||||
|
include_once(PHPWG_ROOT_PATH.'admin/include/functions_upgrade.php');
|
||||||
include(PHPWG_ROOT_PATH.'include/template.php');
|
include(PHPWG_ROOT_PATH.'include/template.php');
|
||||||
include(PHPWG_ROOT_PATH.'include/mysql.inc.php');
|
include(PHPWG_ROOT_PATH.'include/mysql.inc.php');
|
||||||
|
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
// | Check Access and exit when it is not ok |
|
||||||
|
// +-----------------------------------------------------------------------+
|
||||||
|
check_upgrade();
|
||||||
|
|
||||||
define('PREFIX_TABLE', $prefixeTable);
|
define('PREFIX_TABLE', $prefixeTable);
|
||||||
define('UPGRADES_PATH', PHPWG_ROOT_PATH.'install/db');
|
define('UPGRADES_PATH', PHPWG_ROOT_PATH.'install/db');
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue