AuthController.php 3.5 KB

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