diff options
Diffstat (limited to 'modules/gallery/libraries')
| -rw-r--r-- | modules/gallery/libraries/Admin_View.php | 4 | ||||
| -rw-r--r-- | modules/gallery/libraries/Identity.php | 107 | ||||
| -rw-r--r-- | modules/gallery/libraries/MY_Session.php | 84 | ||||
| -rw-r--r-- | modules/gallery/libraries/Theme_View.php | 6 | 
4 files changed, 89 insertions, 112 deletions
| diff --git a/modules/gallery/libraries/Admin_View.php b/modules/gallery/libraries/Admin_View.php index b1bb4ada..74a08c77 100644 --- a/modules/gallery/libraries/Admin_View.php +++ b/modules/gallery/libraries/Admin_View.php @@ -36,12 +36,12 @@ class Admin_View_Core extends Gallery_View {      parent::__construct($name);      $this->theme_name = module::get_var("gallery", "active_admin_theme"); -    if (Identity::active()->admin) { +    if (Session::active_user()->admin) {        $this->theme_name = Input::instance()->get("theme", $this->theme_name);      }      $this->sidebar = "";      $this->set_global("theme", $this); -    $this->set_global("user", Identity::active()); +    $this->set_global("user", Session::active_user());    }    public function admin_menu() { diff --git a/modules/gallery/libraries/Identity.php b/modules/gallery/libraries/Identity.php index fb553de6..f844cf8f 100644 --- a/modules/gallery/libraries/Identity.php +++ b/modules/gallery/libraries/Identity.php @@ -194,111 +194,4 @@ class Identity_Core {    static function get_user_list($ids) {      return self::instance()->driver->get_user_list($ids);    } - -  static function get_login_form($url) { -    $form = new Forge($url, "", "post", array("id" => "g-login-form")); -    $form->set_attr('class', "g-narrow"); -    $group = $form->group("login")->label(t("Login")); -    $group->input("name")->label(t("Username"))->id("g-username")->class(null); -    $group->password("password")->label(t("Password"))->id("g-password")->class(null); -    $group->inputs["name"]->error_messages("invalid_login", t("Invalid name or password")); -    $group->submit("")->value(t("Login")); -    return $form; -  } - -  /** -   * Return the active user.  If there's no active user, return the guest user. -   * -   * @return User_Model -   */ -  static function active() { -    // @todo (maybe) cache this object so we're not always doing session lookups. -    $user = Session::instance()->get("user", null); -    if (!isset($user)) { -      // Don't do this as a fallback in the Session::get() call because it can trigger unnecessary -      // work. -      $user = self::guest(); -    } -    return $user; -  } - -  /** -   * Change the active user. -   * -   * @return User_Model -   */ -  static function set_active($user) { -    $session = Session::instance(); -    $session->set("user", $user); -    $session->delete("group_ids"); -    self::load_user(); -  } - -  /** -   * Return the array of group ids this user belongs to -   * -   * @return array -   */ -  static function group_ids_for_active_user() { -    return Session::instance()->get("group_ids", array(1)); -  } - -  /** -   * Make sure that we have a session and group_ids cached in the session.  This is one -   * of the first calls to reference the user so call the Identity::instance to load the -   * driver classes. -   */ -  static function load_user() { -    $session = Session::instance(); -    if (!($user = $session->get("user"))) { -      $session->set("user", $user = self::guest()); -    } - -    // The installer cannot set a user into the session, so it just sets an id which we should -    // upconvert into a user. -    // @todo set the user name into the session instead of 2 and then use it to get the user object -    if ($user === 2) { -      $user = self::lookup_user_by_name("admin"); -      self::login($user); -      $session->set("user", $user); -    } - -    if (!$session->get("group_ids")) { -      $ids = array(); -      foreach ($user->groups as $group) { -        $ids[] = $group->id; -      } -      $session->set("group_ids", $ids); -    } -  } - -  /** -   * Log in as a given user. -   * @param object $user the user object. -   */ -  static function login($user) { -    // @todo make this an interface call -    $user->login_count += 1; -    $user->last_login = time(); -    $user->save(); - -    self::set_active($user); -    module::event("user_login", $user); -  } - -  /** -   * Log out the active user and destroy the session. -   * @param object $user the user object. -   */ -  static function logout() { -    $user = self::active(); -    if (!$user->guest) { -      try { -        Session::instance()->destroy(); -      } catch (Exception $e) { -        Kohana::log("error", $e); -      } -      module::event("user_logout", $user); -    } -  }  } // End Identity diff --git a/modules/gallery/libraries/MY_Session.php b/modules/gallery/libraries/MY_Session.php new file mode 100644 index 00000000..6394c0fb --- /dev/null +++ b/modules/gallery/libraries/MY_Session.php @@ -0,0 +1,84 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2009 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 Session extends Session_Core { +  /** +   * Make sure that we have a session and group_ids cached in the session. +   */ +  static function load_user() { +    $session = Session::instance(); +    if (!($user = $session->get("user"))) { +      $session->set("user", $user = Identity::guest()); +    } + +    // The installer cannot set a user into the session, so it just sets an id which we should +    // upconvert into a user. +    // @todo set the user name into the session instead of 2 and then use it to get the user object +    if ($user === 2) { +      $user = Instance::lookup_user_by_name("admin"); +      self::set_active_user($user); +      $session->set("user", $user); +    } + +    if (!$session->get("group_ids")) { +      $ids = array(); +      foreach ($user->groups as $group) { +        $ids[] = $group->id; +      } +      $session->set("group_ids", $ids); +    } +  } + +  /** +   * Return the array of group ids this user belongs to +   * +   * @return array +   */ +  static function group_ids_for_active_user() { +    return self::instance()->get("group_ids", array(1)); +  } + +  /** +   * Return the active user.  If there's no active user, return the guest user. +   * +   * @return User_Definition +   */ +  static function active_user() { +    // @todo (maybe) cache this object so we're not always doing session lookups. +    $user = self::instance()->get("user", null); +    if (!isset($user)) { +      // Don't do this as a fallback in the Session::get() call because it can trigger unnecessary +      // work. +      $user = Identity::guest(); +    } +    return $user; +  } + +  /** +   * Change the active user. +   * @param User_Definition $user +   */ +  static function set_active_user($user) { +    $session = Session::instance(); +    $session->set("user", $user); +    $session->delete("group_ids"); +    self::load_user(); +  } +}
\ No newline at end of file diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index 4e87f4fb..2fdc7531 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -37,13 +37,13 @@ class Theme_View_Core extends Gallery_View {      parent::__construct($name);      $this->theme_name = module::get_var("gallery", "active_site_theme"); -    if (Identity::active()->admin) { +    if (Session::active_user()->admin) {        $this->theme_name = Input::instance()->get("theme", $this->theme_name);      }      $this->item = null;      $this->tag = null;      $this->set_global("theme", $this); -    $this->set_global("user", Identity::active()); +    $this->set_global("user", Session::active_user());      $this->set_global("page_type", $page_type);      $this->set_global("page_title", null);      if ($page_type == "album") { @@ -158,7 +158,7 @@ class Theme_View_Core extends Gallery_View {     */    public function sidebar_blocks() {      $sidebar = block_manager::get_html("site.sidebar", $this); -    if (empty($sidebar) && Identity::active()->admin) { +    if (empty($sidebar) && Session::active_user()->admin) {        $sidebar = new View("no_sidebar.html");      }      return $sidebar; | 
