/** * Put a comment * * @param CommentEntity $comment comment instance * @return CommentEntity */ public function put(CommentEntity $comment) { $config = $this->configs->get($this->getConfigKey($comment->instanceId)); if ($config->get('useWysiwyg') === true) { $comment->html = 1; } $updated = $this->repo->update($comment); return $this->member->associate($updated); }
/** * retreiveMember * * @param $id * * @return mixed */ protected function retreiveMember($id) { $member = $this->handler->find($id, ['groups', 'accounts', 'mails']); if ($member === null) { $member = $this->handler->fetchOneMember(['displayName' => $id], ['groups', 'accounts', 'mails']); } if ($member === null) { throw MemberNotFoundException(); } return $member; }
public function deleteMember() { $memberIds = Input::get('id', []); XeDB::beginTransaction(); try { $this->handler->leave($memberIds); } catch (Exception $e) { XeDB::rollBack(); throw $e; } XeDB::commit(); return redirect()->back()->with('alert', ['type' => 'success', 'message' => '삭제되었습니다.']); }
private function memberEditView(MemberEntityInterface $member) { // dynamic field $dynamicField = app('xe.dynamicField'); $fieldTypes = $dynamicField->gets('member'); // password configuration $passwordConfig = app('config')->get('xe.member.password'); $passwordLevel = array_get($passwordConfig['levels'], $passwordConfig['default']); $useEmailConfirm = $this->handler->usingEmailConfirm(); app('xe.frontend')->js('assets/member/settings.js')->load(); app('xe.frontend')->html('member.settings.loadScript')->content("<script>\n XE.\$(function () {\n \$('.__xe_setting.__xe_settingDisplayName').xeDisplayNameSetting({\n checkUrl: '" . route('member.settings.name.check') . "',\n saveUrl: '" . route('member.settings.name.update') . "'\n });\n \$('.__xe_setting.__xe_settingPassword').xePasswordSetting({\n checkUrl: '" . route('member.settings.password.check') . "',\n saveUrl: '" . route('member.settings.password.update') . "'\n });\n \$('.__xe_setting.__xe_settingEmail').xeEmailSetting({\n addUrl: '" . route('member.settings.mail.add') . "',\n saveUrl: '" . route('member.settings.mail.update') . "',\n deleteUrl: '" . route('member.settings.mail.delete') . "',\n confirmUrl: '" . route('member.settings.mail.confirm') . "',\n deletePendingUrl: '" . route('member.settings.pending_mail.delete') . "',\n resendPendingUrl: '" . route('member.settings.pending_mail.resend') . "',\n useEmailConfirm: " . ($useEmailConfirm ? 'true' : 'false') . "\n });\n \$('.__xe_setting.__xe_settingLeave').xeLeaveSetting({\n saveUrl: '" . route('member.settings.leave') . "'\n });\n });\n </script>")->appendTo('body')->load(); /** @var SkinHandler $skinHandler */ $skinHandler = app('xe.skin'); $skin = $skinHandler->getAssigned('member/settings'); return $skin->setView('edit')->setData(compact('member', 'fieldTypes', 'passwordLevel')); }
/** * Reset the given user's password. * * @param Request $request * @return Response */ public function postPassword(Request $request) { $this->validate($request, ['token' => 'required', 'email' => 'required|email', 'password' => 'required|confirmed']); $credentials = $request->only('email', 'password', 'password_confirmation', 'token'); $response = $this->passwords->reset($credentials, function ($user, $password) { $user->password = bcrypt($password); $this->handler->update($user); $this->auth->login($user); }); switch ($response) { case PasswordBroker::PASSWORD_RESET: return redirect('/')->with('status', $response); default: // password configuration $passwordConfig = app('config')->get('xe.member.password'); $passwordLevel = array_get($passwordConfig['levels'], $passwordConfig['default']); return redirect()->back()->withInput($request->only('email'))->with('alert', ['type' => 'danger', 'message' => $passwordLevel['description']]); } }
/** * 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()); }