Add cgi args parser
authorJamie Cameron <jcameron@webmin.com>
Sun, 7 Jun 2009 20:09:53 +0000 (20:09 +0000)
committerJamie Cameron <jcameron@webmin.com>
Sun, 7 Jun 2009 20:09:53 +0000 (20:09 +0000)
custom/cgi_args.pl [new file with mode: 0644]

diff --git a/custom/cgi_args.pl b/custom/cgi_args.pl
new file mode 100644 (file)
index 0000000..35b6aa8
--- /dev/null
@@ -0,0 +1,42 @@
+
+do 'custom-lib.pl';
+
+sub cgi_args
+{
+my ($cgi) = @_;
+my @cust = grep { &can_run_command($_) } &list_commands();
+if ($cgi eq 'edit_cmd.cgi') {
+       # Custom command editor
+       my ($cmd) = grep { !$_->{'edit'} && !$_->{'sql'} } @cust;
+       return $cmd ? 'id='.&urlize($cmd->{'id'}) :
+              $access{'edit'} ? 'new=1' : 'none';
+       }
+elsif ($cgi eq 'form.cgi') {
+       # Custom command form
+       my ($cmd) = grep { !$_->{'edit'} && !$_->{'sql'} } @cust;
+       return $cmd ? 'id='.&urlize($cmd->{'id'}) : 'none';
+       }
+elsif ($cgi eq 'edit_file.cgi') {
+       # File editor editor
+       my ($cmd) = grep { $_->{'edit'} } @cust;
+       return $cmd ? 'id='.&urlize($cmd->{'id'}) :
+              $access{'edit'} ? 'new=1' : 'none';
+       }
+elsif ($cgi eq 'view.cgi') {
+       # Custom command form
+       my ($cmd) = grep { $_->{'edit'} } @cust;
+       return $cmd ? 'id='.&urlize($cmd->{'id'}) : 'none';
+       }
+elsif ($cgi eq 'edit_sql.cgi') {
+       # SQL query
+       my ($cmd) = grep { $_->{'sql'} } @cust;
+       return $cmd ? 'id='.&urlize($cmd->{'id'}) :
+              $access{'edit'} ? 'new=1' : 'none';
+       }
+elsif ($cgi eq 'sqlform.cgi') {
+       # SQL query form
+       my ($cmd) = grep { $_->{'sql'} } @cust;
+       return $cmd ? 'id='.&urlize($cmd->{'id'}) : 'none';
+       }
+return undef;
+}