From: Martin Waitz <tali@admingilde.org>
To: git@vger.kernel.org
Cc: Martin Waitz <tali@admingilde.org>
Subject: [PATCH] gitweb: use action dispatcher for non-project actions, too.
Date: Thu, 17 Aug 2006 00:28:41 +0200 [thread overview]
Message-ID: <11557673281583-git-send-email-tali@admingilde.org> (raw)
In-Reply-To: <11557673262714-git-send-email-tali@admingilde.org>
Allow to use the global action dispatcher for all actions by introducing
"/actions". If no project directory is given then a / is prepended to the
action and the normal dispatcher is called.
Project list and OPML generation are now hooked into the list as "/summary"
and "/opml".
As "/" is not an allowed character in actions accepted through the CGI
parameters, it is still ensured that no normal action can be called without
giving a valid project directory.
Signed-off-by: Martin Waitz <tali@admingilde.org>
---
gitweb/gitweb.perl | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 3b6333c..9a7faab 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -84,11 +84,6 @@ if (defined $action) {
if ($action =~ m/[^0-9a-zA-Z\.\-_]/) {
die_error(undef, "Invalid action parameter");
}
- # action which does not check rest of parameters
- if ($action eq "opml") {
- git_opml();
- exit;
- }
}
our $order = $cgi->param('o');
@@ -113,9 +108,6 @@ if (defined $project) {
die_error(undef, "No such project");
}
$ENV{'GIT_DIR'} = "$projectroot/$project";
-} else {
- git_project_list();
- exit;
}
our $file_name = $cgi->param('f');
@@ -185,12 +177,19 @@ my %actions = (
"search" => \&git_search,
"shortlog" => \&git_shortlog,
"summary" => \&git_summary,
+ "/summary" => \&git_project_list,
+ "/opml" => \&git_opml,
"tag" => \&git_tag,
"tags" => \&git_tags,
"tree" => \&git_tree,
);
-$action = 'summary' if (!defined($action));
+# default action
+$action ||= 'summary';
+
+#only allow non-/ actions if we have a project directory
+$action = "/$action" if !defined($project);
+
if (!defined($actions{$action})) {
die_error(undef, "Unknown action");
}
--
1.4.2.rc2.gf055
next prev parent reply other threads:[~2006-08-16 22:29 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-16 22:28 [PATCH] gitweb: continue consolidation of URL generation Martin Waitz
2006-08-16 22:28 ` [PATCH] gitweb: use common parameter parsing and generation for "o", too Martin Waitz
2006-08-16 22:28 ` [PATCH] gitweb: support for "fp" parameter Martin Waitz
2006-08-16 22:28 ` [PATCH] gitweb: support for / as home_link Martin Waitz
2006-08-16 22:28 ` [PATCH] gitweb: fix project list if PATH_INFO=="/" Martin Waitz
2006-08-16 22:28 ` Martin Waitz [this message]
2006-08-17 2:06 ` [PATCH] gitweb: use action dispatcher for non-project actions, too Junio C Hamano
2006-08-17 15:00 ` Carl Worth
2006-08-18 13:16 ` Petr Baudis
2006-08-18 14:03 ` Carl Worth
2006-08-18 14:22 ` Jakub Narebski
2006-08-18 15:40 ` Petr Baudis
2006-08-17 19:43 ` Martin Waitz
2006-08-17 9:41 ` Jakub Narebski
2006-08-17 19:49 ` Martin Waitz
2006-08-17 20:00 ` Jakub Narebski
2006-08-17 9:35 ` [PATCH] gitweb: use common parameter parsing and generation for "o", too Jakub Narebski
2006-08-17 19:13 ` Martin Waitz
2006-08-17 19:34 ` Jakub Narebski
2006-08-18 20:20 ` Martin Waitz
2006-08-19 10:55 ` Jakub Narebski
2006-08-19 18:33 ` Martin Waitz
2006-08-19 21:44 ` Jakub Narebski
2006-08-17 1:59 ` [PATCH] gitweb: continue consolidation of URL generation Junio C Hamano
2006-08-17 19:32 ` Martin Waitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11557673281583-git-send-email-tali@admingilde.org \
--to=tali@admingilde.org \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).