diff options
| author | Tim Almdal <tnalmdal@shaw.ca> | 2010-07-05 08:23:17 -0700 | 
|---|---|---|
| committer | Tim Almdal <tnalmdal@shaw.ca> | 2010-07-05 08:23:17 -0700 | 
| commit | 8493a3d36f597e183490ae880b35a3d98f50a045 (patch) | |
| tree | 2012fdb411e164c65457d2df756cb2428acfd350 /modules/gallery | |
| parent | e4d397d30118a3d673b146c44ed329efa08bbefe (diff) | |
If the admin request originates as a dialog link, don't display the entire page when reauthenticating the administrator.  Just put the form in the dialog.
Diffstat (limited to 'modules/gallery')
| -rw-r--r-- | modules/gallery/controllers/admin.php | 11 | ||||
| -rw-r--r-- | modules/gallery/controllers/reauthenticate.php | 20 | ||||
| -rw-r--r-- | modules/gallery/helpers/reauthenticate.php | 36 | 
3 files changed, 47 insertions, 20 deletions
| diff --git a/modules/gallery/controllers/admin.php b/modules/gallery/controllers/admin.php index c460f58c..d9bee284 100644 --- a/modules/gallery/controllers/admin.php +++ b/modules/gallery/controllers/admin.php @@ -38,7 +38,8 @@ class Admin_Controller extends Controller {        return self::_reauth_check();      }      if (auth::must_reauth_for_admin_area()) { -      return self::_prompt_for_reauth($controller_name, $args); +      print self::_prompt_for_reauth($controller_name, $args); +      return;      }      if (request::method() == "post") { @@ -85,7 +86,13 @@ class Admin_Controller extends Controller {        // Avoid anti-phishing protection by passing the url as session variable.        Session::instance()->set("continue_url", url::abs_current(true));      } -    url::redirect("reauthenticate"); + +    // Check that we we not in a dialog. If we are, then use an ajax response. +    if (strpos(Router::$query_string, "g-in-dialog") === false) { +      url::redirect("reauthenticate"); +    } else { +      return reauthenticate::get_authenticate_form(); +    }    }  } diff --git a/modules/gallery/controllers/reauthenticate.php b/modules/gallery/controllers/reauthenticate.php index acb27f6a..9ddaff2e 100644 --- a/modules/gallery/controllers/reauthenticate.php +++ b/modules/gallery/controllers/reauthenticate.php @@ -22,7 +22,7 @@ class Reauthenticate_Controller extends Controller {      if (!identity::active_user()->admin) {        access::forbidden();      } -    return self::_show_form(self::_form()); +    return self::_show_form(reauthenticate::get_authenticate_form());    }    public function auth() { @@ -31,7 +31,7 @@ class Reauthenticate_Controller extends Controller {      }      access::verify_csrf(); -    $form = self::_form(); +    $form = reauthenticate::get_authenticate_form();      $valid = $form->validate();      $user = identity::active_user();      if ($valid) { @@ -54,20 +54,4 @@ class Reauthenticate_Controller extends Controller {      $view->content->user_name = identity::active_user()->name;      print $view;    } - -  private static function _form() { -    $form = new Forge("reauthenticate/auth", "", "post", array("id" => "g-reauthenticate-form")); -    $form->set_attr('class', "g-narrow"); -    $form->hidden("continue_url")->value(Session::instance()->get("continue_url", "admin")); -    $group = $form->group("reauthenticate")->label(t("Re-authenticate")); -    $group->password("password")->label(t("Password"))->id("g-password")->class(null) -      ->callback("auth::validate_too_many_failed_auth_attempts") -      ->callback("user::valid_password") -      ->error_messages("invalid_password", t("Incorrect password")) -      ->error_messages( -        "too_many_failed_auth_attempts", -        t("Too many incorrect passwords.  Try again later")); -    $group->submit("")->value(t("Submit")); -    return $form; -  }  } diff --git a/modules/gallery/helpers/reauthenticate.php b/modules/gallery/helpers/reauthenticate.php new file mode 100644 index 00000000..1ad90e15 --- /dev/null +++ b/modules/gallery/helpers/reauthenticate.php @@ -0,0 +1,36 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2010 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA. + */ +class reauthenticate_Core { +  static function get_authenticate_form() { +    $form = new Forge("reauthenticate/auth", "", "post", array("id" => "g-reauthenticate-form")); +    $form->set_attr('class', "g-narrow"); +    $form->hidden("continue_url")->value(Session::instance()->get("continue_url", "admin")); +    $group = $form->group("reauthenticate")->label(t("Re-authenticate")); +    $group->password("password")->label(t("Password"))->id("g-password")->class(null) +      ->callback("auth::validate_too_many_failed_auth_attempts") +      ->callback("user::valid_password") +      ->error_messages("invalid_password", t("Incorrect password")) +      ->error_messages( +        "too_many_failed_auth_attempts", +        t("Too many incorrect passwords.  Try again later")); +    $group->submit("")->value(t("Submit")); +    return $form; +  } +} | 
