diff options
Diffstat (limited to 'modules/user')
| -rw-r--r-- | modules/user/controllers/password.php | 2 | ||||
| -rw-r--r-- | modules/user/models/group.php | 8 | ||||
| -rw-r--r-- | modules/user/models/user.php | 8 | 
3 files changed, 15 insertions, 3 deletions
| diff --git a/modules/user/controllers/password.php b/modules/user/controllers/password.php index 2e5eac5f..567e56dc 100644 --- a/modules/user/controllers/password.php +++ b/modules/user/controllers/password.php @@ -51,7 +51,7 @@ class Password_Controller extends Controller {      $user_name = $form->reset->inputs["name"]->value;      $user = user::lookup_by_name($user_name);      if ($user && !empty($user->email)) { -      $user->hash = md5(uniqid(mt_rand(), true)); +      $user->hash = random::hash();        $user->save();        $message = new View("reset_password.html");        $message->confirm_url = url::abs_site("password/do_reset?key=$user->hash"); diff --git a/modules/user/models/group.php b/modules/user/models/group.php index 17d9320b..8f8e218d 100644 --- a/modules/user/models/group.php +++ b/modules/user/models/group.php @@ -19,6 +19,7 @@   */  class Group_Model_Core extends ORM implements Group_Definition {    protected $has_and_belongs_to_many = array("users"); +  protected $users_cache = null;    /**     * @see ORM::delete() @@ -28,10 +29,14 @@ class Group_Model_Core extends ORM implements Group_Definition {      module::event("group_before_delete", $this);      parent::delete($id);      module::event("group_deleted", $old); +    $this->users_cache = null;    }    public function users() { -    return $this->users->find_all(); +    if (!$this->users_cache) { +      $this->users_cache = $this->users->find_all()->as_array(); +    } +    return $this->users_cache;    }    /** @@ -60,6 +65,7 @@ class Group_Model_Core extends ORM implements Group_Definition {        module::event("group_updated", $original, $this);      } +    $this->users_cache = null;      return $this;    } diff --git a/modules/user/models/user.php b/modules/user/models/user.php index 55bb3d6a..585f4b96 100644 --- a/modules/user/models/user.php +++ b/modules/user/models/user.php @@ -20,6 +20,7 @@  class User_Model_Core extends ORM implements User_Definition {    protected $has_and_belongs_to_many = array("groups");    protected $password_length = null; +  protected $groups_cache = null;    public function __set($column, $value) {      switch ($column) { @@ -43,6 +44,7 @@ class User_Model_Core extends ORM implements User_Definition {      module::event("user_before_delete", $this);      parent::delete($id);      module::event("user_deleted", $old); +    $this->groups_cache = null;    }    /** @@ -56,7 +58,10 @@ class User_Model_Core extends ORM implements User_Definition {    }    public function groups() { -    return $this->groups->find_all(); +    if (!$this->groups_cache) { +      $this->groups_cache = $this->groups->find_all()->as_array(); +    } +    return $this->groups_cache;    }    /** @@ -108,6 +113,7 @@ class User_Model_Core extends ORM implements User_Definition {        module::event("user_updated", $original, $this);      } +    $this->groups_cache = null;      return $this;    } | 
