diff --git a/postgresql/edit_grant.cgi b/postgresql/edit_grant.cgi index f6700916a..9839b7c95 100755 --- a/postgresql/edit_grant.cgi +++ b/postgresql/edit_grant.cgi @@ -21,69 +21,67 @@ foreach $g (@{$s->{'data'}}) { } } -print "
\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; +# Start of form block +print &ui_form_start("save_grant.cgi", "post"); +print &ui_hidden("db", $in{'db'}); +print &ui_hidden("table", $in{'table'}); +print &ui_hidden("ns", $in{'ns'}); +print &ui_hidden("type", $in{'type'}); +print &ui_hidden("search", $in{'search'}); +print &ui_table_start($text{'grant_header'}, undef, 2); -print "\n"; -print "\n"; -print "
$text{'grant_header'}
\n"; +# Database name +print &ui_table_row($text{'grant_db'}, "$in{'db'}"); -print "\n"; -print "\n"; +# Schema name +print &ui_table_row($text{'grant_ns'}, "$in{'ns'}"); -print "\n"; -print "\n"; - -print "\n"; -print "\n"; +# Object name +print &ui_table_row($text{"grant_$in{'type'}"}, "$in{'table'}"); +# Get users and groups for permissions table $u = &execute_sql_safe($config{'basedb'}, "select usename from pg_shadow"); @users = map { $_->[0] } @{$u->{'data'}}; $r = &execute_sql_safe($config{'basedb'}, "select groname from pg_group"); @groups = map { $_->[0] } @{$r->{'data'}}; -print "\n"; -print "
$text{'grant_db'}$in{'db'}
$text{'grant_ns'}$in{'ns'}
",$text{"grant_$in{'type'}"},"$in{'table'}
$text{'grant_users'}
\n"; -print "\n"; -print " ", - "\n"; +# Table of users / groups and permissions $i = 0; +@table = ( ); foreach $g (@grant, [ undef, undef ]) { - print "\n"; + push(@row, $cbs); + push(@table, \@row); $i++; } -print "
$text{'grant_user'}$text{'grant_what'}
\n"; + # User / group selector + local @row; + push(@row, &ui_select("user_$i", + !defined($g->[0]) ? "" : + $g->[0] eq '' ? "public" : $g->[0], + [ [ '', ' ' ], + [ 'public', $text{'grant_public'} ], + (map { [ "group $_", &text('grant_group', $_) ] } + @groups), + (@users) ])); + # Permissions ($acl = $g->[1]) =~ s/\/.*//g; + $cbs = ""; foreach $p ( [ 'SELECT', 'r' ], [ 'UPDATE', 'w' ], [ 'INSERT', 'a' ], [ 'DELETE', 'd' ], [ 'RULE', 'R' ], [ 'REFERENCES', 'x' ], [ 'TRIGGER', 't' ] ) { - printf " %s\n", - $p->[0], $acl =~ /$p->[1]/ ? 'checked' : '', $p->[0]; + $cbs .= &ui_checkbox("what_$i", $p->[0], $p->[0], + $acl =~ /$p->[1]/)."\n"; } - print "
\n"; -print "
\n"; +print &ui_table_row($text{'grant_users'}, + &ui_columns_table([ $text{'grant_user'}, $text{'grant_what'} ], + undef, + \@table)); + +print &ui_table_end(); +print &ui_form_end([ [ undef, $text{'save'} ] ]); &ui_print_footer("list_grants.cgi?search=".&urlize($in{'search'}), $text{'grant_return'});