[aur-dev] [PATCH 1/7] Add virtual path support for package actions

Lukas Fleischer archlinux at cryptocrack.de
Tue Jul 17 16:47:09 EDT 2012


This allows for using following URLs:

* /package/$pkg_name/flag: Flag a package out-of-date
* /package/$pkg_name/unflag: Unflag a package
* /package/$pkg_name/notify: Enable comment notifications
* /package/$pkg_name/unnotify: Disable comment notifications
* /package/$pkg_name/vote: Vote for the package
* /package/$pkg_name/unvote: Remove vote

Note that this code is very hackish and should be refactored once we
drop support for legacy URLs.

Signed-off-by: Lukas Fleischer <archlinux at cryptocrack.de>
---
 web/html/index.php | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/web/html/index.php b/web/html/index.php
index de38178..0af3f2d 100644
--- a/web/html/index.php
+++ b/web/html/index.php
@@ -3,14 +3,44 @@ set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
 
 include_once("config.inc.php");
 include_once("routing.inc.php");
+include_once("aur.inc.php");
+include_once("pkgfuncs.inc.php");
 
 $path = rtrim($_SERVER['PATH_INFO'], '/');
 $tokens = explode('/', $path);
 
-if (isset($tokens[1]) &&'/' . $tokens[1] == get_pkg_route()) {
+if (isset($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) {
 	if (isset($tokens[2])) {
 		unset($_GET['ID']);
 		$_GET['N'] = $tokens[2];
+
+		if (isset($tokens[3])) {
+			/* TODO: Remove support for legacy URIs and move these
+			 * actions to separate modules. */
+			switch ($tokens[3]) {
+			case "vote":
+				$_POST['do_Vote'] = __('Vote');
+				break;
+			case "unvote":
+				$_POST['do_UnVote'] = __('UnVote');
+				break;
+			case "notify":
+				$_POST['do_Notify'] = __('Notify');
+				break;
+			case "unnotify":
+				$_POST['do_UnNotify'] = __('UnNotify');
+				break;
+			case "flag":
+				$_POST['do_Flag'] = __('Flag');
+				break;
+			case "unflag":
+				$_POST['do_UnFlag'] = __('UnFlag');
+				break;
+			}
+
+			$_POST['token'] = $_COOKIE['AURSID'];
+			$_POST['IDs'] = array(pkgid_from_name($tokens[2]) => '1');
+		}
 	}
 
 	include get_route('/' . $tokens[1]);
-- 
1.7.11.2



More information about the aur-dev mailing list