Esempio n. 1
0
 private function _update_account($fields)
 {
     $stat = false;
     $password = null;
     //new password?
     if (!empty($fields["new_password"]->value)) {
         $password = $fields["new_password"]->value;
     }
     $accounthelper = new org_openpsa_user_accounthelper($this->_person);
     // Update account
     $stat = $accounthelper->set_account($fields["username"]->value, $password);
     if (!$stat && midcom_connection::get_error() != MGD_ERR_OK) {
         // Failure, give a message
         midcom::get('uimessages')->add($this->_l10n->get('org.openpsa.user'), $this->_l10n->get("failed to update the user account, reason") . ': ' . midcom_connection::get_error_string(), 'error');
     }
     return $stat;
 }
Esempio n. 2
0
 /**
  * @depends testCheck_password_strength
  * @depends testCheck_password_reuse
  * @depends testGenerate_safe_password
  */
 public function testSet_account()
 {
     $accounthelper = new org_openpsa_user_accounthelper(self::$_user);
     $account = midcom_core_account::get(self::$_user);
     $password = $account->get_password();
     $username = $account->get_username();
     midcom::get('auth')->request_sudo('org.openpsa.user');
     self::$_user->delete_parameter('org_openpsa_user_password', 'old_passwords');
     self::$_user->delete_parameter('org_openpsa_user_password', 'last_change');
     do {
         $new_password = $accounthelper->generate_safe_password();
     } while ($password === $new_password);
     $new_username = $username . time();
     $this->assertTrue($accounthelper->set_account($new_username, $new_password));
     midcom::get('auth')->drop_sudo();
     $this->assertEquals(midcom_connection::prepare_password($new_password), $account->get_password());
     $this->assertEquals($new_username, $account->get_username());
     $this->assertFalse(is_null(self::$_user->get_parameter('org_openpsa_user_password', 'last_change')));
     $this->assertEquals(serialize(array($password)), self::$_user->get_parameter('org_openpsa_user_password', 'old_passwords'));
 }