[aur-dev] [PATCH 1/2] Add a new AUR_LOCATION setting
Lukas Fleischer
archlinux at cryptocrack.de
Mon Oct 24 14:04:12 EDT 2011
On Fri, Oct 21, 2011 at 03:15:55PM -0500, Dan McGee wrote:
> This should be set to something like 'http://localhost' for development
> or 'https://aur.archlinux.org' in production. It ensures all links in
> the site stay in the development site and there is no sudden jump from
> development to production environments.
>
> Signed-off-by: Dan McGee <dan at archlinux.org>
> ---
>
> Resubmit v2- tested the pages, correct syntax on variable definition, and
> use 'global' keyword where appropriate.
>
> web/html/passreset.php | 2 +-
> web/lib/aur.inc.php | 1 +
> web/lib/config.inc.php.proto | 3 +++
> web/lib/pkgfuncs.inc.php | 6 +++++-
> web/template/header.php | 2 +-
> web/template/login_form.php | 2 +-
> web/template/pkg_comment_form.php | 4 ++--
> 7 files changed, 14 insertions(+), 6 deletions(-)
Mh. This breaks the "switch to HTTPs" feature if you use "http://" as
prefix. The only two solutions that come to my mind are:
* Make the host name configurable only and prepend the protocol part
where appropriate.
* Do not support HTTPs unless you specify "https://". This makes sense
to me but should be documented..?
>
> diff --git a/web/html/passreset.php b/web/html/passreset.php
> index 01f3204..47d649d 100644
> --- a/web/html/passreset.php
> +++ b/web/html/passreset.php
> @@ -67,7 +67,7 @@ if (isset($_GET['resetkey'], $_POST['email'], $_POST['password'], $_POST['confir
> 'your password follow the link below, otherwise ignore '.
> 'this message and nothing will happen.').
> "\n\n".
> - 'https://aur.archlinux.org/passreset.php?'.
> + "{$AUR_LOCATION}/passreset.php?".
> "resetkey={$resetkey}";
> $body = wordwrap($body, 70);
> $headers = "To: {$email}\nReply-to: nobody at archlinux.org\nFrom:aur-notify at archlinux.org\nX-Mailer: PHP\nX-MimeOLE: Produced By AUR";
> diff --git a/web/lib/aur.inc.php b/web/lib/aur.inc.php
> index f432697..315092c 100644
> --- a/web/lib/aur.inc.php
> +++ b/web/lib/aur.inc.php
> @@ -327,6 +327,7 @@ function html_header($title="") {
> global $LANG;
> global $SUPPORTED_LANGS;
> global $DISABLE_HTTP_LOGIN;
> + global $AUR_LOCATION;
>
> if (!$DISABLE_HTTP_LOGIN || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'])) {
> $login = try_login();
> diff --git a/web/lib/config.inc.php.proto b/web/lib/config.inc.php.proto
> index fbade86..3230815 100644
> --- a/web/lib/config.inc.php.proto
> +++ b/web/lib/config.inc.php.proto
> @@ -77,3 +77,6 @@ $MAX_FILESIZE_UNCOMPRESSED = 1024 * 1024 * 8;
>
> # Allow HTTPs logins only
> $DISABLE_HTTP_LOGIN = true;
> +
> +# Web URL used in email links and absolute redirects, no trailing slash
> +$AUR_LOCATION = "http://localhost";
> diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
> index 3e89fa3..f3e9134 100644
> --- a/web/lib/pkgfuncs.inc.php
> +++ b/web/lib/pkgfuncs.inc.php
> @@ -301,6 +301,8 @@ function pkgname_is_blacklisted($name, $dbh=NULL) {
> # display package details
> #
> function package_details($id=0, $SID="", $dbh=NULL) {
> + global $AUR_LOCATION;
> +
> if(!$dbh) {
> $dbh = db_connect();
> }
> @@ -620,6 +622,8 @@ function sanitize_ids($ids) {
> * @return string Translated success or error messages
> */
> function pkg_flag ($atype, $ids, $action=true, $dbh=NULL) {
> + global $AUR_LOCATION;
> +
> if (!$atype) {
> if ($action) {
> return __("You must be logged in before you can flag packages.");
> @@ -666,7 +670,7 @@ function pkg_flag ($atype, $ids, $action=true, $dbh=NULL) {
> if (mysql_num_rows($result)) {
> while ($row = mysql_fetch_assoc($result)) {
> # construct email
> - $body = "Your package " . $row['Name'] . " has been flagged out of date by " . $f_name . " [1]. You may view your package at:\nhttps://aur.archlinux.org/packages.php?ID=" . $row['ID'] . "\n\n[1] - https://aur.archlinux.org/account.php?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 . "/packages.php?ID=" . $row['ID'] . "\n\n[1] - " . $AUR_LOCATION . "/account.php?Action=AccountInfo&ID=" . $f_uid;
> $body = wordwrap($body, 70);
> $headers = "Reply-to: nobody at archlinux.org\nFrom:aur-notify at 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/template/header.php b/web/template/header.php
> index 8313bb3..73486b4 100644
> --- a/web/template/header.php
> +++ b/web/template/header.php
> @@ -23,7 +23,7 @@
> <li id="anb-forums"><a href="https://bbs.archlinux.org/" title="Community forums">Forums</a></li>
> <li id="anb-wiki"><a href="https://wiki.archlinux.org/" title="Community documentation">Wiki</a></li>
> <li id="anb-bugs"><a href="https://bugs.archlinux.org/" title="Report and track bugs">Bugs</a></li>
> - <li id="anb-aur"><a href="https://aur.archlinux.org/" title="Arch Linux User Repository">AUR</a></li>
> + <li id="anb-aur"><a href="/" title="Arch Linux User Repository">AUR</a></li>
> <li id="anb-download"><a href="http://www.archlinux.org/download/" title="Get Arch Linux">Download</a></li>
> </ul>
> </div>
> diff --git a/web/template/login_form.php b/web/template/login_form.php
> index c27e9ba..21bdaa7 100644
> --- a/web/template/login_form.php
> +++ b/web/template/login_form.php
> @@ -32,7 +32,7 @@ else {
> ?>
> <span class='error'>
> <?php printf(__("HTTP login is disabled. Please %sswitch to HTTPs%s if you want to login."),
> - '<a href="https://aur.archlinux.org' . htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES) . '">', '</a>'); ?>
> + '<a href="' . $AUR_LOCATION . htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES) . '">', '</a>'); ?>
> </span>
> <?php } ?>
> </div>
> diff --git a/web/template/pkg_comment_form.php b/web/template/pkg_comment_form.php
> index e52c92d..c6ed69a 100644
> --- a/web/template/pkg_comment_form.php
> +++ b/web/template/pkg_comment_form.php
> @@ -35,9 +35,9 @@ if (isset($_REQUEST['comment'])) {
> # Simply making these strings translatable won't work, users would be
> # getting emails in the language that the user who posted the comment was in
> $body =
> - 'from https://aur.archlinux.org/packages.php?ID='
> + 'from ' . $AUR_LOCATION . '/packages.php?ID='
> . $_REQUEST['ID'] . "\n"
> - . username_from_sid($_COOKIE['AURSID']) . " wrote:\n\n"
> + . username_from_sid($_COOKIE['AURSID'], $dbh) . " wrote:\n\n"
> . $_POST['comment']
> . "\n\n---\nIf you no longer wish to receive notifications about this package, please go the the above package page and click the UnNotify button.";
> $body = wordwrap($body, 70);
> --
> 1.7.7
More information about the aur-dev
mailing list