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 <[email protected]>
> ---
> 
> 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: 
> [email protected]\nFrom:[email protected]\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: 
> [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/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

Reply via email to