Example #1
0
 public static function _init()
 {
     static::$_properties['member_id'] = Util_Orm::get_relational_numeric_key_prop();
     static::$_properties['email'] = Model_MemberAuth::property('email');
     static::$_properties['token'] = Model_MemberPre::property('token');
     static::$_properties['token']['form']['type'] = false;
 }
Example #2
0
 public static function _init()
 {
     static::$_properties['member_id'] = Util_Orm::get_relational_numeric_key_prop();
     static::$_properties['email'] = Model_MemberAuth::property('email');
     static::$_properties['token'] = Model_MemberPre::property('token');
     static::$_properties['token']['form']['type'] = false;
     static::$_properties['code']['label'] = term('form.confirm', 'site.code');
     static::$_properties['code']['form']['validation']['exact_length'] = array(conf('member.setting.email.codeLength'));
 }
Example #3
0
 /**
  * Mmeber leave
  * 
  * @access  public
  * @return  Response
  */
 public function action_index()
 {
     $val = self::get_validation_object();
     if (\Input::method() == 'POST') {
         \Util_security::check_csrf();
         $success_message = sprintf('%sを%sしました。', term('form.invite', 'site.mail'), term('form.post'));
         $error_message = '';
         $is_transaction_rollback = false;
         try {
             if (!$val->run()) {
                 throw new ValidationFailedException($val->show_errors());
             }
             $post = $val->validated();
             if (Model_MemberPre::get_one4invite_member_id_and_email($this->u->id, $post['email'])) {
                 throw new ValidationFailedException(sprintf('その%sは既に%sです。', term('site.email'), term('form.invited')));
             }
             DB::start_transaction();
             $token = Model_MemberPre::save_with_token($post['email'], null, $this->u->id);
             DB::commit_transaction();
             $mail = new Site_Mail('memberInvite');
             $mail->send($post['email'], array('register_url' => sprintf('%s?token=%s', Uri::create('member/register'), $token), 'invite_member_name' => $this->u->name, 'invite_message' => $post['message']));
             Session::set_flash('message', $success_message);
             Response::redirect('member/invite');
         } catch (ValidationFailedException $e) {
             $error_message = Site_Controller::get_error_message($e);
         } catch (EmailValidationFailedException $e) {
             Util_Toolkit::log_error('send mail error: ' . __METHOD__ . ' validation error');
             $error_message = 'メール送信エラー';
         } catch (EmailSendingFailedException $e) {
             Util_Toolkit::log_error('send mail error: ' . __METHOD__ . ' sending error');
             $error_message = 'メール送信エラー';
         } catch (\Database_Exception $e) {
             $is_transaction_rollback = true;
             $error_message = Site_Controller::get_error_message($e, true);
         } catch (FuelException $e) {
             $is_transaction_rollback = true;
             $error_message = Site_Controller::get_error_message($e);
         }
         if ($is_transaction_rollback && DB::in_transaction()) {
             DB::rollback_transaction();
         }
         if ($error_message) {
             Session::set_flash('error', $error_message);
         }
     }
     $this->set_title_and_breadcrumbs(term('form.invite_friend'), null, $this->u);
     $this->template->content = \View::forge('member/invite', array('val' => $val, 'member_pres' => Model_MemberPre::get4invite_member_id($this->u->id)));
 }
Example #4
0
 private function check_token()
 {
     if (!($member_pre = Model_MemberPre::get4token(Input::param('token')))) {
         return false;
     }
     if (!Site_Util::check_token_lifetime($member_pre->updated_at, conf('member.register.token_lifetime'))) {
         return false;
     }
     return $member_pre;
 }