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 <[email protected]>
---
 web/html/index.php            |  6 ++++++
 web/html/voters.php           |  2 +-
 web/lib/acctfuncs.inc.php     |  2 +-
 web/lib/pkgfuncs.inc.php      |  2 +-
 web/lib/routing.inc.php       | 17 +++++++++++++++++
 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 7c4eb47..e6f3771 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 0ec77ec..41c9d6f 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&amp;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 e7dcb10..7471d06 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&amp;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 6cdab0f..b2daf0e 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: 
[email protected]\nFrom:[email protected]\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 4ca1150..dfd6942 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 46c1ef3..d0bd4f8 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&amp;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)): ?>
-- 
1.7.12

Reply via email to