6
0
Fork 0

添加后台重置用户密码功能

release
vine_liutk 2022-01-05 15:21:01 +08:00
parent 0ae85a494e
commit bfb48b5d43
3 changed files with 107 additions and 8 deletions

View File

@ -0,0 +1,38 @@
<?php
namespace App\Admin\Actions\Grid;
use App\Admin\Forms\UserResetPassword as UserResetPasswordForm;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Widgets\Modal;
class UserResetPassword extends RowAction
{
public function title()
{
if ($this->title) {
return $this->title;
}
return '<i class="feather grid-action-icon icon-repeat"></i> 重置密码&nbsp;&nbsp;';
}
/**
* @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());
}
}

View File

@ -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));
});

View File

@ -0,0 +1,55 @@
<?php
namespace App\Admin\Forms;
use App\Models\User;
use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
use Dcat\Admin\Widgets\Form;
class UserResetPassword extends Form implements LazyRenderable
{
use LazyWidget;
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return $user->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();
}
}