Exemplo n.º 1
0
 protected function set_login_validation()
 {
     Fieldset::reset();
     $this->login_val = Validation::forge('site_login');
     $options = array('1' => '次回から自動的にログイン');
     $this->login_val->add('rememberme', '', array('type' => 'checkbox', 'options' => $options))->add_rule('checkbox_val', $options);
     $this->login_val->add_model(Model_MemberAuth::forge());
     $this->login_val->fieldset()->field('email')->delete_rule('unique');
     View::set_global('login_val', $this->login_val);
 }
Exemplo n.º 2
0
 /**
  * Update a user's properties
  * Note: Username cannot be updated, to update password the old password must be passed as old_password
  *
  * @param   Array  properties to be updated including profile fields
  * @param   integer
  * @return  bool
  */
 public function update_user($values, $member_id = null)
 {
     if (empty($member_id)) {
         $member_id = $this->member->id;
     }
     if (empty($member_id)) {
         throw new \SimpleUserUpdateException('Username not found', 4);
     }
     // get the current user record
     $current_member = self::get_member4id($member_id);
     if (!($current_member_auth = $current_member->member_auth)) {
         $current_member_auth = \Model_MemberAuth::forge();
         $current_member_auth->member_id = $member_id;
     }
     // and bail out if it doesn't exist
     if (empty($current_member)) {
         throw new \SimpleUserUpdateException('Username not found', 4);
     }
     // validate the values passed and assume the update array
     $update = array();
     if (array_key_exists('email', $values)) {
         $email = filter_var(trim($values['email']), FILTER_VALIDATE_EMAIL);
         if (!$email) {
             throw new \SimpleUserUpdateException('Email address is not valid', 7);
         }
         $matches = \Model_MemberAuth::query()->where('email', '=', $email)->where('member_id', '!=', $current_member->id)->get_one();
         if ($matches) {
             throw new \SimpleUserUpdateException('Email address is already in use', 11);
         }
         $update['email'] = $email;
         unset($values['email']);
     }
     $new_email_for_salt = array_key_exists('email', $update) ? $update['email'] : $current_member_auth->email;
     if (array_key_exists('password', $values)) {
         if (empty($values['old_password']) or $current_member_auth->password != $this->hash_password(trim($values['old_password']), $current_member_auth->email)) {
             throw new \SimpleUserWrongPassword('Old password is invalid');
         }
         $password = trim(strval($values['password']));
         if ($password === '') {
             throw new \SimpleUserUpdateException('Password can\'t be empty.', 6);
         }
         $update['password'] = $this->hash_password($password, $new_email_for_salt);
         unset($values['password']);
     }
     if (array_key_exists('old_password', $values)) {
         unset($values['old_password']);
     }
     // load the updated values into the object
     $current_member_auth->from_array($update);
     $updated = false;
     // any values remaining?
     if (!empty($values)) {
         // set them as EAV values
         foreach ($values as $key => $value) {
             if (!isset($current_member_auth->{$key}) or $current_member_auth->{$key} != $value) {
                 if ($value === null) {
                     unset($current_member_auth->{$key});
                 } else {
                     $current_member_auth->{$key} = $value;
                 }
                 // mark we've updated something
                 $updated = true;
             }
         }
     }
     // check if this has changed anything
     if ($updated or $updated = $current_member_auth->is_changed()) {
         // and only save if it did
         $current_member_auth->save();
     }
     // return the updated status
     return $updated;
 }
Exemplo n.º 3
0
 public function get_form_signup_confirm()
 {
     return Site_Util::get_form_instance('confirm_signup', Model_MemberAuth::forge(), true, null, 'submit');
 }