public function store(Request $request)
 {
     $this->validate($request, ['email' => 'email|required|unique:member_mails,address', 'displayName' => 'required|unique:member', 'password' => 'required']);
     $memberData = $request->except('_token');
     $memberData['emailConfirmed'] = 1;
     XeDB::beginTransaction();
     try {
         $this->handler->create($memberData);
     } catch (\Exception $e) {
         XeDB::rollback();
         throw $e;
     }
     XeDB::commit();
     return redirect()->route('settings.member.index')->with('alert', ['type' => 'success', 'message' => '추가되었습니다.']);
 }
Пример #2
0
 /**
  * Handle a registration request for the application.
  *
  * @param  \Illuminate\Http\Request $request
  *
  * @return \Illuminate\Http\Response
  */
 public function postRegister(Request $request)
 {
     // validation
     $this->checkJoinable();
     $this->checkCaptcha('join');
     $validate = \Validator::make($request->all(), ['email' => 'email|required|unique:member_mails,address', 'displayName' => 'required', 'password' => 'required|confirmed|password', 'agree' => 'required']);
     if ($validate->fails()) {
         $e = new InvalidArgumentException();
         $e->setMessage($validate->errors()->first());
         throw $e;
     }
     // resolve data
     $memberData = $request->except('_token');
     $memberData['rating'] = Rating::MEMBER;
     $memberData['status'] = Member::STATUS_ACTIVATED;
     unset($memberData['password_confirmation']);
     XeDB::beginTransaction();
     try {
         $member = $this->handler->create($memberData);
         $mail = $member->getPendingEmail();
     } catch (\Exception $e) {
         XeDB::rollback();
         throw $e;
     }
     XeDB::commit();
     // if email confirmation enabled, send email for confirm
     if ($this->useEmailConfirm() !== false) {
         try {
             /** @var EmailBrokerInterface $broker */
             $this->emailBroker->sendEmailForConfirmation($mail);
         } catch (Exception $e) {
             throw $e;
         }
         // redirect to email confirm info page
         return redirect()->route('auth.confirm', ['email' => $member->email])->with('alert', ['type' => 'info', 'message' => '회원가입이 정상적으로 처리되었습니다. 회원계정을 활성화하려면 이메일 인증을 하셔야 합니다.']);
     }
     // login and redirect
     $this->auth->login($member);
     return redirect($this->redirectPath());
 }