query('lang'); if(!empty($lang)) { switchLanguage($lang); return response()->json(['success' => true, 'lang' => $lang]); } if ($this->guard()->check()) { return redirect($this->getRedirectPath()); } return $content->full()->body(view($this->view)); } /** * Login interface.重写登录接口 * @param Request $request * @return */ public function postLogin(Request $request) { $credentials = $request->only([$this->username(), 'password', 'captcha']); $remember = (bool)$request->input('remember', false); /** @var \Illuminate\Validation\Validator $validator */ $validator = Validator::make($credentials, [ $this->username() => 'required', 'password' => 'required', 'captcha' => 'required', ]); if ($request->input('captcha') != Session::get('captcha')) { Session::forget('captcha'); return response()->json([ 'success' => false, 'message' => 'The captcha is incorrect. Please refresh the page and try again.', 'refresh_captcha' => true, // 通知前端刷新验证码 ], 422);; // 422 表示 Unprocessable Entity } else { Session::forget('captcha'); } unset($credentials['captcha']); if ($validator->fails()) { return $this->validationErrorsResponse($validator); } if ($this->guard()->attempt($credentials, $remember)) { //登录成功后从dist_admin_distributor表中取出当前登录用户的公司信息 $distributor = DistAdminDistributor::where('id', Admin::user()->dist_id)->first(); if (!$distributor) { $this->guard()->logout(); return $this->validationErrorsResponse([ $this->username() => $this->getFailedLoginMessage(), ]); } //将当前登录用户的公司信息存入session Session::put('distributor', $distributor->toArray()); // 登录成功后返回登录响应 return $this->sendLoginResponse($request); } return $this->validationErrorsResponse([ $this->username() => $this->getFailedLoginMessage(), ]); } public function getSetting(Content $content) { $form = $this->settingForm(); $form->tools( function (Form\Tools $tools) { $tools->disableList(); } ); return $content ->view('distributor.layouts.content') ->title(trans('admin.user_setting')) ->body($form->edit(Admin::user()->getKey())); } /** * Model-form for user setting. * * @return Form */ protected function settingForm() { return new Form(new Administrator(), function (Form $form) { $form->action(admin_url('auth/setting')); $form->disableCreatingCheck(); $form->disableEditingCheck(); $form->disableViewCheck(); $form->tools(function (Form\Tools $tools) { $tools->disableView(); $tools->disableDelete(); }); $form->display('username', trans('admin.username')); $form->text('name', trans('admin.name'))->required(); //$form->image('avatar', trans('admin.avatar'))->autoUpload(); $form->password('old_password', trans('admin.old_password')); $form->password('password', trans('admin.password')) ->minLength(5) ->maxLength(20) ->customFormat(function ($v) { if ($v == $this->password) { return; } return $v; }); $form->password('password_confirmation', trans('admin.password_confirmation'))->same('password'); $form->ignore(['password_confirmation', 'old_password']); // 添加语言选择的下拉框 // $form->select('language', trans('admin.language')) // ->options(config('dictionary.languages')) // ->default('en') // ->required();; // 设置默认语言 $form->saving(function (Form $form) { if ($form->password && $form->model()->password != $form->password) { $form->password = bcrypt($form->password); } if (! $form->password) { $form->deleteInput('password'); } }); $form->saved(function (Form $form) { return $form ->response() ->success(trans('admin.update_succeeded')) //->redirect('/'); ->script('setTimeout(() => {location.reload();}, 1000);');//保存成功后刷新页面 }); // // 在从数据库中取出记录时,如果 language 为空,则默认给它一个值 // $form->model()->language = $form->model()->language ?: 'en'; }); } protected function sendLoginResponse(Request $request) { $request->session()->regenerate(); $path = $this->getRedirectPath(); return $this->response() ->success(trans('admin.login_successful')) ->locationToIntended($path) ->locationIf(Admin::app()->getEnabledApps(), $path) ->send(); } }