如何在joomla中更改用户密码?

时间:2012-10-22 13:52:19

标签: joomla joomla2.5

我正在为joomla编写自定义注册/授权模块,我想知道如何使用默认的joomla方法更改用户密码?目前我有:

private function UpdateUser(){
    $user = JFactory::getUser($this->user_data['username']);
    $user->set('password', $this->user_data['password']);
    $user->set('password2', $this->user_data['password']);
    // $user->bind();
    $user->save();
}

但密码未更新。

P.S。 $this->user_data包括有关用户的其他工作人员,但我只需要更新密码。

1 个答案:

答案 0 :(得分:2)

解决。

private function UpdateUser($username, $password){

    $user = JFactory::getUser($this->GetIdByUserName($username));
    $password = array('password' => $password, 'password2' => $password);
    if(!$user->bind($password)){
        die('Could not bind data. Error: '.$user->getError());
    }
    if(!$user->save()){
        die('Could not save user. Error: '.$user->getError());
    }
}


private function GetIdByUserName($username){
    $query = $this->db->getQuery(true);

    $query->select('id');
    $query->from('#__users');
    $query->where('username=' . $this->db->Quote($username));

    $this->db->setQuery($query);
    if(isset($this->db->loadObject()->id) && !empty($this->db->loadObject()->id))
        return $this->db->loadObject()->id;
    else
        die('No id');
}