From: chriskl Date: Thu, 22 Jul 2004 04:52:50 +0000 (+0000) Subject: make granting and revoking way, way better. now it remembers field contents when... X-Git-Tag: REL_3-5-1~104 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=7b13ee691e9684249e8e539489295b938b607e3d;p=phppgadmin.git make granting and revoking way, way better. now it remembers field contents when you make a mistake and there are separate grant and revoke commands, revoke options don't appear on the grant page and so forth --- diff --git a/BUGS b/BUGS index 93d5b565..13e1223e 100644 --- a/BUGS +++ b/BUGS @@ -33,3 +33,4 @@ NEEDS TESTING * Allows tabs in textareas on IE: http://devilock.mine.nu/textarea_tab.html * add help links everywhere. fix formatting of help links. * Deal with named parameters that have ',' in the type name + diff --git a/HISTORY b/HISTORY index 46fcebdb..71aea5c1 100644 --- a/HISTORY +++ b/HISTORY @@ -18,6 +18,7 @@ Features looking at (eg. 'Indexes') when you change which table you are viewing. * New fast navigation bar. A breadcrumb style navigation bar for fast jumping between areas. +* Much improved grant/revoke feature Translations * Arabic from Zaki diff --git a/lang/english.php b/lang/english.php index 4f0a60c1..66bffaea 100755 --- a/lang/english.php +++ b/lang/english.php @@ -4,7 +4,7 @@ * English language file for phpPgAdmin. Use this as a basis * for new translations. * - * $Id: english.php,v 1.155 2004/07/15 10:06:25 soranzo Exp $ + * $Id: english.php,v 1.156 2004/07/22 04:52:50 chriskl Exp $ */ // Language and character set @@ -259,7 +259,6 @@ $lang['strgranted'] = 'Privileges changed.'; $lang['strgrantfailed'] = 'Failed to change privileges.'; $lang['strgrantbad'] = 'You must specify at least one user or group and at least one privilege.'; - $lang['stralterprivs'] = 'Alter privileges'; $lang['strgrantor'] = 'Grantor'; $lang['strasterisk'] = '*'; diff --git a/lang/recoded/english.php b/lang/recoded/english.php index e2b16c1d..04184614 100644 --- a/lang/recoded/english.php +++ b/lang/recoded/english.php @@ -4,7 +4,7 @@ * English language file for phpPgAdmin. Use this as a basis * for new translations. * - * $Id: english.php,v 1.108 2004/07/15 10:06:25 soranzo Exp $ + * $Id: english.php,v 1.109 2004/07/22 04:52:50 chriskl Exp $ */ // Language and character set @@ -259,7 +259,6 @@ $lang['strgranted'] = 'Privileges changed.'; $lang['strgrantfailed'] = 'Failed to change privileges.'; $lang['strgrantbad'] = 'You must specify at least one user or group and at least one privilege.'; - $lang['stralterprivs'] = 'Alter privileges'; $lang['strgrantor'] = 'Grantor'; $lang['strasterisk'] = '*'; diff --git a/privileges.php b/privileges.php index bc656bde..867e32c0 100644 --- a/privileges.php +++ b/privileges.php @@ -3,7 +3,7 @@ /** * Manage privileges in a database * - * $Id: privileges.php,v 1.27 2004/07/19 08:13:02 jollytoad Exp $ + * $Id: privileges.php,v 1.28 2004/07/22 04:52:50 chriskl Exp $ */ // Include application functions @@ -15,10 +15,11 @@ /** * Grant permissions on an object to a user - * @peram $confirm To show entry screen + * @param $confirm To show entry screen + * @param $mode 'grant' or 'revoke' * @param $msg (optional) A message to show */ - function doAlter($confirm, $msg = '') { + function doAlter($confirm, $mode, $msg = '') { global $data, $misc; global $PHP_SELF, $lang; @@ -43,30 +44,32 @@ // Get groups from the database $groups = &$data->getGroups(); - echo "

{$lang['strprivileges']}: ", $misc->printVal($name), ": {$lang['stralterprivs']}

\n"; + if ($mode == 'grant') + echo "

{$lang['strprivileges']}: ", $misc->printVal($name), ": {$lang['strgrant']}

\n"; + elseif ($mode == 'revoke') + echo "

{$lang['strprivileges']}: ", $misc->printVal($name), ": {$lang['strrevoke']}

\n"; $misc->printMsg($msg); - echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Grant option if ($data->hasGrantOption()) { echo "\n"; echo "\n"; } echo "
{$lang['strusers']}
{$lang['strgroups']}\n"; - echo "PUBLIC\n"; + echo "PUBLIC\n"; // Only show groups if there are groups! if ($groups->recordCount() > 0) { echo "
\n"; @@ -77,22 +80,29 @@ foreach ($data->privlist[$_REQUEST['type']] as $v) { $v = htmlspecialchars($v); echo "{$v}
\n"; + isset($_REQUEST['privilege'][$v]) ? ' checked="checked"' : '', " />{$v}
\n"; } echo "
{$lang['stroptions']}\n"; - echo "GRANT OPTION
\n"; - echo "CASCADE ({$lang['strrevoke']})
\n"; + if ($mode == 'grant') { + echo "GRANT OPTION\n"; + } + elseif ($mode == 'revoke') { + echo "GRANT OPTION FOR
\n"; + echo "CASCADE
\n"; + } echo "
\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; switch ($_REQUEST['type']) { @@ -108,21 +118,25 @@ default: } echo $misc->form; - echo "

\n"; - echo "\n"; - echo "

\n"; + echo "

"; + if ($mode == 'grant') + echo "\n"; + elseif ($mode == 'revoke') + echo "\n"; + echo ""; + echo "

\n"; echo "
\n"; } else { - $status = $data->setPrivileges(isset($_REQUEST['grant']) ? 'GRANT' : 'REVOKE', $_REQUEST['type'], $_REQUEST['object'], + $status = $data->setPrivileges(($mode == 'grant') ? 'GRANT' : 'REVOKE', $_REQUEST['type'], $_REQUEST['object'], isset($_REQUEST['public']), $_REQUEST['username'], $_REQUEST['groupname'], array_keys($_REQUEST['privilege']), isset($_REQUEST['grantoption']), isset($_REQUEST['cascade'])); if ($status == 0) doDefault($lang['strgranted']); elseif ($status == -3 || $status == -4) - doAlter(true, $lang['strgrantbad']); + doAlter(true, $_REQUEST['mode'], $lang['strgrantbad']); else - doAlter(true, $lang['strgrantfailed']); + doAlter(true, $_REQUEST['mode'], $lang['strgrantfailed']); } } @@ -196,41 +210,55 @@ switch ($_REQUEST['type']) { case 'table': echo "

href}&type={$_REQUEST['type']}&object=", - urlencode($_REQUEST['object']), "&table=", urlencode($_REQUEST['table']), "\">{$lang['stralterprivs']}

\n"; + urlencode($_REQUEST['object']), "&table=", urlencode($_REQUEST['table']), "&mode=grant\">{$lang['strgrant']} |\n"; + echo "href}&type={$_REQUEST['type']}&object=", + urlencode($_REQUEST['object']), "&table=", urlencode($_REQUEST['table']), "&mode=revoke\">{$lang['strrevoke']}

\n"; break; case 'view': echo "

href}&type={$_REQUEST['type']}&object=", - urlencode($_REQUEST['object']), "&view=", urlencode($_REQUEST['view']), "\">{$lang['stralterprivs']}

\n"; + urlencode($_REQUEST['object']), "&view=", urlencode($_REQUEST['view']), "&mode=grant\">{$lang['strgrant']} |\n"; + echo "href}&type={$_REQUEST['type']}&object=", + urlencode($_REQUEST['object']), "&view=", urlencode($_REQUEST['view']), "&mode=revoke\">{$lang['strrevoke']}

\n"; break; case 'sequence': if (!isset($_REQUEST['sequence'])) $_REQUEST['sequence'] = $_REQUEST['object']; echo "

href}&type={$_REQUEST['type']}&object=", - urlencode($_REQUEST['object']), "&sequence=", urlencode($_REQUEST['sequence']), "\">{$lang['stralterprivs']}\n"; - echo "| href}\">{$lang['strshowallsequences']}

\n"; + urlencode($_REQUEST['object']), "&sequence=", urlencode($_REQUEST['sequence']), "&mode=grant\">{$lang['strgrant']} |\n"; + echo "href}&type={$_REQUEST['type']}&object=", + urlencode($_REQUEST['object']), "&sequence=", urlencode($_REQUEST['sequence']), "&mode=revoke\">{$lang['strrevoke']} |\n"; + echo "href}\">{$lang['strshowallsequences']}

\n"; break; case 'database': if (!isset($_REQUEST['database'])) $_REQUEST['database'] = $_REQUEST['object']; echo "

{$lang['stralterprivs']}\n"; - echo "| {$lang['strshowalldatabases']}

\n"; + urlencode($_REQUEST['object']), "&database=", urlencode($_REQUEST['database']), "&mode=grant\">{$lang['strgrant']} |\n"; + echo "{$lang['strrevoke']} |\n"; + echo "{$lang['strshowalldatabases']}

\n"; break; case 'function': echo "

href}&type={$_REQUEST['type']}&object=", - urlencode($_REQUEST['object']), "&function=", urlencode($_REQUEST['function']), "\">{$lang['stralterprivs']}\n"; - echo "| href}\">{$lang['strshowallfunctions']}

\n"; + urlencode($_REQUEST['object']), "&function=", urlencode($_REQUEST['function']), "&mode=grant\">{$lang['strgrant']} |\n"; + echo "href}&type={$_REQUEST['type']}&object=", + urlencode($_REQUEST['object']), "&function=", urlencode($_REQUEST['function']), "&mode=revoke\">{$lang['strrevoke']} |\n"; + echo "href}\">{$lang['strshowallfunctions']}

\n"; break; case 'schema': if (!isset($_REQUEST['schema'])) $_REQUEST['schema'] = $_REQUEST['object']; echo "

href}&type={$_REQUEST['type']}&object=", - urlencode($_REQUEST['object']), "&schema=", urlencode($_REQUEST['schema']), "\">{$lang['stralterprivs']}\n"; - echo "| {$lang['strgrant']} |\n"; + echo "href}&type={$_REQUEST['type']}&object=", + urlencode($_REQUEST['object']), "&schema=", urlencode($_REQUEST['schema']), "&mode=revoke\">{$lang['strrevoke']} |\n"; + echo "{$lang['strshowallschemas']}

\n"; break; case 'tablespace': if (!isset($_REQUEST['tablespace'])) $_REQUEST['tablespace'] = $_REQUEST['object']; echo "

{$lang['stralterprivs']}\n"; - echo "| {$lang['strshowalltablespaces']}

\n"; + urlencode($_REQUEST['object']), "&tablespace=", urlencode($_REQUEST['tablespace']), "&mode=grant\">{$lang['strgrant']} |\n"; + echo "{$lang['strrevoke']} |\n"; + echo "{$lang['strshowalltablespaces']}

\n"; break; } echo "

\n"; @@ -243,10 +271,10 @@ switch ($action) { case 'save': if (isset($_REQUEST['cancel'])) doDefault(); - else doAlter(false); + else doAlter(false, $_REQUEST['mode']); break; case 'alter': - doAlter(true); + doAlter(true, $_REQUEST['mode']); break; default: doDefault();