if ($cgi eq 'edit_user.cgi') {
local ($u) = grep { &can_edit_user($u->{'name'}) }
&list_users();
- return $u ? 'user='.&urlize($u->{'name'}) : 'none';
+ return $u ? 'user='.&urlize($u->{'name'}) :
+ $access{'create'} ? '' : 'none';
}
elsif ($cgi eq 'edit_group.cgi') {
local ($u) = grep { &can_edit_group($u->{'name'}) }
&list_groups();
- return $u ? 'group='.&urlize($u->{'name'}) : 'none';
+ return $u ? 'group='.&urlize($u->{'name'}) :
+ $access{'groups'} ? '' : 'none';
}
elsif ($cgi eq 'edit_acl.cgi') {
local ($u) = grep { &can_edit_user($u->{'name'}) }
--- /dev/null
+
+do 'backup-config-lib.pl';
+
+sub cgi_args
+{
+my ($cgi) = @_;
+if ($cgi eq 'edit.cgi') {
+ my @backups = &list_backups();
+ return @backups ? 'id='.&urlize($backups[0]->{'id'})
+ : 'new=1';
+ }
+return undef;
+}
return $args;
}
}
-# Guess if any are needed
if ($cgi eq "index.cgi") {
+ # Index page is always safe to link to
return undef;
}
+# Otherwise check if it appears to parse any args
local $data = &read_file_contents($mroot."/".$cgi);
if ($data =~ /ReadParse\(/) {
return "none";