AuthController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace App\Distributor\Controllers;
  3. use Dcat\Admin\Http\Controllers\AuthController as BaseAuthController;
  4. use Dcat\Admin\Admin;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Http\Repositories\Administrator;
  7. use Dcat\Admin\Layout\Content;
  8. use Illuminate\Http\Request;
  9. class AuthController extends BaseAuthController
  10. {
  11. protected $view = 'distributor.pages.login';
  12. public function getSetting(Content $content)
  13. {
  14. $form = $this->settingForm();
  15. $form->tools(
  16. function (Form\Tools $tools) {
  17. $tools->disableList();
  18. }
  19. );
  20. return $content
  21. ->title(trans('admin.user_setting'))
  22. ->body($form->edit(Admin::user()->getKey()));
  23. }
  24. /**
  25. * Model-form for user setting.
  26. *
  27. * @return Form
  28. */
  29. protected function settingForm()
  30. {
  31. return new Form(new Administrator(), function (Form $form) {
  32. $form->action(admin_url('auth/setting'));
  33. $form->disableCreatingCheck();
  34. $form->disableEditingCheck();
  35. $form->disableViewCheck();
  36. $form->tools(function (Form\Tools $tools) {
  37. $tools->disableView();
  38. $tools->disableDelete();
  39. });
  40. $form->display('username', trans('admin.username'));
  41. $form->text('name', trans('admin.name'))->required();
  42. //$form->image('avatar', trans('admin.avatar'))->autoUpload();
  43. $form->password('old_password', trans('admin.old_password'));
  44. $form->password('password', trans('admin.password'))
  45. ->minLength(5)
  46. ->maxLength(20)
  47. ->customFormat(function ($v) {
  48. if ($v == $this->password) {
  49. return;
  50. }
  51. return $v;
  52. });
  53. $form->password('password_confirmation', trans('admin.password_confirmation'))->same('password');
  54. $form->ignore(['password_confirmation', 'old_password']);
  55. // 添加语言选择的下拉框
  56. $form->select('language', trans('admin.language'))
  57. ->options(config('app.languages'))
  58. ->default('en')
  59. ->required();; // 设置默认语言
  60. $form->saving(function (Form $form) {
  61. if ($form->password && $form->model()->password != $form->password) {
  62. $form->password = bcrypt($form->password);
  63. }
  64. if (! $form->password) {
  65. $form->deleteInput('password');
  66. }
  67. });
  68. $form->saved(function (Form $form) {
  69. return $form
  70. ->response()
  71. ->success(trans('admin.update_succeeded'))
  72. //->redirect('/');
  73. ->script('location.reload();');//保存成功后刷新页面
  74. });
  75. // // 在从数据库中取出记录时,如果 language 为空,则默认给它一个值
  76. // $form->model()->language = $form->model()->language ?: 'en';
  77. });
  78. }
  79. protected function sendLoginResponse(Request $request)
  80. {
  81. $request->session()->regenerate();
  82. $path = $this->getRedirectPath();
  83. return $this->response()
  84. ->success(trans('admin.login_successful'))
  85. ->locationToIntended($path)
  86. ->locationIf(Admin::app()->getEnabledApps(), $path)
  87. ->send();
  88. }
  89. }