diff options
author | canyonknight <canyonknight@gmail.com> | 2012-09-13 00:21:22 +0200 |
---|---|---|
committer | Lukas Fleischer <archlinux@cryptocrack.de> | 2012-09-18 00:59:21 +0200 |
commit | 98b6ba94795b27b098276b30ca9fd61b28b2b110 (patch) | |
tree | 250cc8a639bdbe0f1b07928182c4e197cb6fb63e | |
parent | 440a66ced0bb8ebe9172f99bc98529645194e0ee (diff) | |
download | aur-98b6ba94795b27b098276b30ca9fd61b28b2b110.tar.gz aur-98b6ba94795b27b098276b30ca9fd61b28b2b110.tar.xz |
Use URL rewriting for user info page
Navigation to the "AccountInfo" page should only require a user to know the
username of the account they are looking for. Update all AUR links that use
the user info page to reflect the new URL.
Before:
AUR_URL/account/?Action=AccountInfo&U=userfoo
After:
AUR_URL/account/userfoo
Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
-rw-r--r-- | web/html/index.php | 6 | ||||
-rw-r--r-- | web/html/voters.php | 2 | ||||
-rw-r--r-- | web/lib/acctfuncs.inc.php | 2 | ||||
-rw-r--r-- | web/lib/pkgfuncs.inc.php | 2 | ||||
-rw-r--r-- | web/lib/routing.inc.php | 17 | ||||
-rw-r--r-- | web/template/pkg_comments.php | 2 |
6 files changed, 27 insertions, 4 deletions
diff --git a/web/html/index.php b/web/html/index.php index 7c4eb475..e6f3771b 100644 --- a/web/html/index.php +++ b/web/html/index.php @@ -48,6 +48,12 @@ if (isset($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) { } include get_route('/' . $tokens[1]); +} elseif (isset($tokens[1]) && '/' . $tokens[1] == get_user_route()) { + if (isset($tokens[2])) { + $_REQUEST['U'] = $tokens[2]; + $_REQUEST['Action'] = "AccountInfo"; + } + include get_route('/' . $tokens[1]); } elseif (get_route($path) !== NULL) { include get_route($path); } else { diff --git a/web/html/voters.php b/web/html/voters.php index 0ec77ecf..41c9d6f9 100644 --- a/web/html/voters.php +++ b/web/html/voters.php @@ -19,7 +19,7 @@ if ($atype == 'Trusted User' || $atype== 'Developer'): <div class="boxbody"> <ul> <?php while (list($indx, $row) = each($votes)): ?> - <li><a href="<?php echo get_uri('/account/'); ?>?Action=AccountInfo&ID=<?php echo $row['UsersID'] ?>"><?php echo htmlspecialchars($row['Username']) ?></a></li> + <li><a href="<?php echo get_user_uri($row['Username']); ?>"><?php echo htmlspecialchars($row['Username']) ?></a></li> <?php endwhile; ?> </ul> </div> diff --git a/web/lib/acctfuncs.inc.php b/web/lib/acctfuncs.inc.php index e7dcb100..7471d06b 100644 --- a/web/lib/acctfuncs.inc.php +++ b/web/lib/acctfuncs.inc.php @@ -827,7 +827,7 @@ function voter_list($voteid, $dbh=NULL) { $result = $dbh->query($q); if ($result) { while ($row = $result->fetch(PDO::FETCH_ASSOC)) { - $whovoted.= '<a href="' . get_uri('/accounts/') . '?Action=AccountInfo&ID='.$row['UserID'].'">'.$row['Username'].'</a> '; + $whovoted.= '<a href="' . get_user_uri($row['Username']) . '">'.$row['Username'].'</a> '; } } return $whovoted; diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php index 6cdab0fc..b2daf0ec 100644 --- a/web/lib/pkgfuncs.inc.php +++ b/web/lib/pkgfuncs.inc.php @@ -764,7 +764,7 @@ function pkg_flag ($atype, $ids, $action=true, $dbh=NULL) { if ($result) { while ($row = $result->fetch(PDO::FETCH_ASSOC)) { # construct email - $body = "Your package " . $row['Name'] . " has been flagged out of date by " . $f_name . " [1]. You may view your package at:\n" . $AUR_LOCATION . "/" . get_pkg_uri($row['Name']) . "\n\n[1] - " . $AUR_LOCATION . "/" . get_uri('/accounts/') . "?Action=AccountInfo&ID=" . $f_uid; + $body = "Your package " . $row['Name'] . " has been flagged out of date by " . $f_name . " [1]. You may view your package at:\n" . $AUR_LOCATION . "/" . get_pkg_uri($row['Name']) . "\n\n[1] - " . $AUR_LOCATION . "/" . get_user_uri($f_name); $body = wordwrap($body, 70); $headers = "Reply-to: nobody@archlinux.org\nFrom:aur-notify@archlinux.org\nX-Mailer: PHP\nX-MimeOLE: Produced By AUR\n"; @mail($row['Email'], "AUR Out-of-date Notification for ".$row['Name'], $body, $headers); diff --git a/web/lib/routing.inc.php b/web/lib/routing.inc.php index 4ca1150f..dfd6942c 100644 --- a/web/lib/routing.inc.php +++ b/web/lib/routing.inc.php @@ -18,6 +18,7 @@ $ROUTES = array( ); $PKG_PATH = '/packages'; +$USER_PATH = '/account'; function get_route($path) { global $ROUTES; @@ -56,3 +57,19 @@ function get_pkg_uri($pkgname) { return get_route($PKG_PATH) . '?N=' . urlencode($pkgname); } } + +function get_user_route() { + global $USER_PATH; + return $USER_PATH; +} + +function get_user_uri($username) { + global $USE_VIRTUAL_URLS; + global $USER_PATH; + + if ($USE_VIRTUAL_URLS) { + return $USER_PATH . '/' . urlencode($username) . '/'; + } else { + return get_route($USER_PATH) . '?U=' . urlencode($username); + } +} diff --git a/web/template/pkg_comments.php b/web/template/pkg_comments.php index 46c1ef3f..d0bd4f88 100644 --- a/web/template/pkg_comments.php +++ b/web/template/pkg_comments.php @@ -11,7 +11,7 @@ $pkgname = $row['Name']; <?php while (list($indx, $row) = each($comments)): ?> <?php if ($SID): - $row['UserName'] = "<a href=\"" . get_uri('/account/') . "?Action=AccountInfo&ID={$row['UsersID']}\">{$row['UserName']}</a>"; + $row['UserName'] = "<a href=\"" . get_user_uri($row['UserName']) . "\">{$row['UserName']}</a>"; endif; ?> <h4> <?php if (canDeleteCommentArray($row, $atype, $uid)): ?> |