From bfb48b5d43306aa9465991e0b53b684b068564ac Mon Sep 17 00:00:00 2001 From: vine_liutk <961510893@qq.com> Date: Wed, 5 Jan 2022 15:21:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8E=E5=8F=B0=E9=87=8D?= =?UTF-8?q?=E7=BD=AE=E7=94=A8=E6=88=B7=E5=AF=86=E7=A0=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Actions/Grid/UserResetPassword.php | 38 ++++++++++++++ app/Admin/Controllers/UserController.php | 22 +++++--- app/Admin/Forms/UserResetPassword.php | 55 ++++++++++++++++++++ 3 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 app/Admin/Actions/Grid/UserResetPassword.php create mode 100644 app/Admin/Forms/UserResetPassword.php diff --git a/app/Admin/Actions/Grid/UserResetPassword.php b/app/Admin/Actions/Grid/UserResetPassword.php new file mode 100644 index 00000000..9c3d5757 --- /dev/null +++ b/app/Admin/Actions/Grid/UserResetPassword.php @@ -0,0 +1,38 @@ +title) { + return $this->title; + } + return ' 重置密码  '; + } + + /** + * @param Model|Authenticatable|HasPermissions|null $user + * + * @return bool + */ + protected function authorize($user): bool + { + return $user->can('dcat.admin.users.reset_password'); + } + + public function render() + { + $form = UserResetPasswordForm::make()->payload(['id'=>$this->getKey()]); + return Modal::make() + ->lg() + ->title($this->title()) + ->body($form) + ->button($this->title()); + } +} diff --git a/app/Admin/Controllers/UserController.php b/app/Admin/Controllers/UserController.php index 8cd6a62b..76341cac 100644 --- a/app/Admin/Controllers/UserController.php +++ b/app/Admin/Controllers/UserController.php @@ -6,6 +6,7 @@ use App\Admin\Actions\Grid\DisableUser; use App\Admin\Actions\Grid\EnableUser; use App\Admin\Actions\Grid\Frozen; use App\Admin\Actions\Grid\UserEditAgent; +use App\Admin\Actions\Grid\UserResetPassword; use App\Admin\Actions\Show\UserDisableBonus; use App\Admin\Actions\Show\UserEditBank; use App\Admin\Actions\Show\UserEditPhone; @@ -114,6 +115,11 @@ class UserController extends AdminController if (Admin::user()->can('dcat.admin.users.edit_agent')) { $actions->append(new UserEditAgent()); } + + // 重置用户密码 + if (Admin::user()->can('dcat.admin.users.reset_password')) { + $actions->append(new UserResetPassword()); + } }); $grid->filter(function (Grid\Filter $filter) { @@ -177,19 +183,19 @@ class UserController extends AdminController ->tools(function ($tools) use ($show) { $tools->disableEdit(); $tools->disableDelete(); - // todo-修改手机号 + // 修改手机号 if (Admin::user()->can('dcat.admin.users.edit_phone')) { $tools->append(new UserEditPhone()); } - // todo-修改银行卡 + // 修改银行卡 if (Admin::user()->can('dcat.admin.users.edit_bank')) { $tools->append(new UserEditBank()); } - // todo-开启奖金分红 + // 开启奖金分红 if (!$show->model()->userInfo->bonusable && Admin::user()->can('dcat.admin.users.enable_bonus')) { $tools->append(new UserEnableBonus()); } - // todo-关闭奖金分红 + // 关闭奖金分红 if ($show->model()->userInfo->bonusable && Admin::user()->can('dcat.admin.users.disable_bonus')) { $tools->append(new UserDisableBonus()); } @@ -198,13 +204,13 @@ class UserController extends AdminController }); $row->column(7, function ($column) use ($id) { $tab = Tab::make(); - // todo_粉丝列表 + // 粉丝列表 $tab->add('粉丝列表', UserFansSimpleTable::make(['id'=>$id])); - // todo-预收益明细 + // 预收益明细 $tab->add('预收益明细', DistributionPreIncomeSimpleTable::make(['id'=>$id])); - // todo-可提明细 + // 可提明细 $tab->add('可提明细', UserWalletLogSimpleTable::make(['id'=>$id])); - // todo-余额明细 + // 余额明细 $tab->add('余额明细', UserBalanceLogSimpleTable::make(['id'=>$id])); $column->row(Box::make('用户记录', $tab)); }); diff --git a/app/Admin/Forms/UserResetPassword.php b/app/Admin/Forms/UserResetPassword.php new file mode 100644 index 00000000..c611ae91 --- /dev/null +++ b/app/Admin/Forms/UserResetPassword.php @@ -0,0 +1,55 @@ +can('dcat.admin.users.reset_password'); + } + + /** + * Handle the form request. + * + * @param array $input + * + * @return mixed + */ + public function handle(array $input) + { + $id = $this->payload['id'] ?? 0; + $user = User::findOrFail($id); + + $user->update([ + 'password' => $input['password'], + ]); + $user->tokens()->delete(); + + return $this->response() + ->success(__('admin.update_succeeded')) + ->refresh(); + } + + /** + * Build a form here. + */ + public function form() + { + $this->password('password')->required(); + // 设置错误信息 + $this->password('password_confirm')->same('password', '两次密码输入不一致')->required(); + } +}