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' => '추가되었습니다.']); }
/** * 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()); }