Skip to content

Commit bd240f9

Browse files
committed
modify password
1 parent 58b8a46 commit bd240f9

File tree

13 files changed

+251
-25
lines changed

13 files changed

+251
-25
lines changed

app/Http/Controllers/Admin/AdminController.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,49 @@
88

99

1010
use App\Http\Controllers\Controller;
11+
use App\Http\Models\Users;
12+
use App\Library\Response;
13+
use App\Validate\ModifyPwdValidate;
14+
use Illuminate\Http\Request;
15+
use Illuminate\Support\Facades\Hash;
1116

1217
class AdminController extends Controller
1318
{
1419
public function index()
1520
{
1621
return view('admin.index');
1722
}
23+
24+
public function modifyPwd()
25+
{
26+
return view('admin.modifyPwd');
27+
}
28+
29+
public function newPwd(Request $request)
30+
{
31+
$validate = new ModifyPwdValidate($request);
32+
if (!$validate->goCheck()) {
33+
return Response::response(Response::PARAM_ERROR, $validate->errors->first());
34+
}
35+
36+
$params = $validate->requestData;
37+
38+
$user = Users::find(session('user')['id']);
39+
if (!$user) {
40+
return Response::response(Response::BAD_REQUEST);
41+
}
42+
43+
if (!Hash::check($params['oldPassword'], $user->password)) {
44+
return Response::response(Response::BAD_REQUEST, '请输入正确的当前密码');
45+
}
46+
47+
$user->password = Hash::make($params['password']);
48+
49+
if ($user->save()) {
50+
//退出登录
51+
$request->session()->forget('user');
52+
return Response::response();
53+
}
54+
return Response::response(Response::SQL_ERROR);
55+
}
1856
}

app/Http/Controllers/Admin/LoginController.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ public function login(Request $request)
5050
return Response::response(Response::BAD_REQUEST, '登录名或密码有误');
5151
}
5252

53+
if ($user->status == Users::STATUS_DISABLE) {
54+
return Response::response(Response::BAD_REQUEST, '您的账户被禁用,请联系管理员');
55+
}
56+
5357
session(['user' => $user]);
5458

5559
return Response::response();

app/Http/Controllers/Admin/UserController.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,4 +185,26 @@ public function status(Request $request)
185185
}
186186
return Response::response();
187187
}
188+
189+
public function reset(Request $request)
190+
{
191+
$user_id = $request->get('id');
192+
if (!$user_id) {
193+
return Response::response(Response::PARAM_ERROR);
194+
}
195+
196+
$user = Users::find($user_id);
197+
if (!$user || $user->status != Users::STATUS_ENABLE) {
198+
//启用的用户才可以重置密码
199+
return Response::response(Response::BAD_REQUEST);
200+
}
201+
202+
//统一重置密码为admin123
203+
$user->password = Hash::make('admin123');
204+
205+
if (!$user->save()) {
206+
return Response::response(Response::SQL_ERROR);
207+
}
208+
return Response::response(Response::OK, '密码已成功重置为:admin123');
209+
}
188210
}

app/Validate/ModifyPwdValidate.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
/**
3+
4+
* Date: 2019/1/28 下午9:20
5+
*/
6+
7+
namespace App\Validate;
8+
9+
10+
class ModifyPwdValidate extends BaseValidate
11+
{
12+
protected $rules = [];
13+
14+
protected $message = [
15+
'password.required' => '请输入当前密码',
16+
'password.between' => '密码长度为6-20个字符',
17+
'password_repeat.required' => '请输入确认密码',
18+
'password_repeat.same' => '两次填写的密码不一致',
19+
];
20+
21+
public function __construct($request)
22+
{
23+
parent::__construct($request);
24+
$this->rules = [
25+
'password' => 'required|between:6,20',
26+
'password_repeat' => 'required|same:password',
27+
];
28+
}
29+
30+
}

app/Validate/UserStoreValidate.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class UserStoreValidate extends BaseValidate
2121
'email.email' => '邮箱格式不正确',
2222
'email.unique' => '邮箱已经存在',
2323
'password.required' => '请输入密码',
24-
'password.between' => '密码长度为6-12个字符',
24+
'password.between' => '密码长度为6-20个字符',
2525
'password_repeat.required' => '请输入确认密码',
2626
'password_repeat.same' => '两次填写的密码不一致',
2727
'status.required' => '请选择状态',
@@ -36,7 +36,7 @@ public function __construct($request)
3636
$this->rules = [
3737
'name' => 'required|max:20',
3838
'email' => 'required|email|unique:users,email',
39-
'password' => 'required|between:6,12',
39+
'password' => 'required|between:6,20',
4040
'password_repeat' => 'required|same:password',
4141
'status' => ['required', Rule::in([1, 2])],
4242
'administrator' => ['required', Rule::in([1, 2])],

app/Validate/UserUpdateValidate.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class UserUpdateValidate extends BaseValidate
2121
'name.max' => '姓名最多20个字符',
2222
'email.required' => '请输入邮箱',
2323
'email.email' => '邮箱格式不正确',
24-
'password.between' => '密码长度为6-12个字符',
24+
'password.between' => '密码长度为6-20个字符',
2525
'password_repeat.same' => '两次填写的密码不一致',
2626
'status.required' => '请选择状态',
2727
'status.in' => '状态值不正确',
@@ -36,7 +36,7 @@ public function __construct($request)
3636
'id' => 'required|numeric',
3737
'name' => 'required|max:20',
3838
'email' => 'required|email',
39-
'password' => 'nullable|between:6,12',
39+
'password' => 'nullable|between:6,20',
4040
'password_repeat' => 'nullable|same:password',
4141
'status' => ['required', Rule::in([1, 2])],
4242
'administrator' => ['required', Rule::in([1, 2])],
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@extends('layouts.admin')
22

33
@section('content')
4-
index
4+
管理后台首页
55
@endsection
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
@extends('layouts.admin')
2+
3+
@section('content')
4+
<div class="layui-card">
5+
<div class="layui-card-header">修改密码</div>
6+
<div class="layui-card-body">
7+
<form class="layui-form" action="">
8+
<div class="layui-form" lay-filter="">
9+
<div class="layui-form-item">
10+
<label class="layui-form-label">当前密码</label>
11+
<div class="layui-input-inline">
12+
<input type="password" name="oldPassword" lay-verify="required" lay-verType="tips"
13+
class="layui-input">
14+
</div>
15+
</div>
16+
<div class="layui-form-item">
17+
<label class="layui-form-label">新密码</label>
18+
<div class="layui-input-inline">
19+
<input type="password" name="password" lay-verify="required|pass" lay-verType="tips"
20+
autocomplete="off" id="LAY_password" class="layui-input">
21+
</div>
22+
<div class="layui-form-mid layui-word-aux">6到20个字符</div>
23+
</div>
24+
<div class="layui-form-item">
25+
<label class="layui-form-label">确认新密码</label>
26+
<div class="layui-input-inline">
27+
<input type="password" name="password_repeat" lay-verify="required|same" lay-verType="tips"
28+
autocomplete="off" class="layui-input">
29+
</div>
30+
</div>
31+
<div class="layui-form-item">
32+
<div class="layui-input-block">
33+
<button class="layui-btn" lay-submit lay-filter="formDemo" type="button">确认修改</button>
34+
</div>
35+
</div>
36+
</div>
37+
</form>
38+
</div>
39+
</div>
40+
@endsection
41+
42+
@section('script')
43+
<script>
44+
layui.use(['form', 'layer'], function () {
45+
var form = layui.form;
46+
var layer = layui.layer;
47+
48+
form.verify({
49+
same: function (value, item) { //value:表单的值、item:表单的DOM对象
50+
if (value !== $("input[name='password']").val()) {
51+
return '两次填写的密码不一致';
52+
}
53+
}
54+
55+
//我们既支持上述函数式的方式,也支持下述数组的形式
56+
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
57+
, pass: [
58+
/^[\S]{6,20}$/
59+
, '密码必须6到20位,且不能出现空格'
60+
]
61+
});
62+
63+
//监听提交
64+
form.on('submit(formDemo)', function (data) {
65+
$.ajaxSetup({
66+
headers: {
67+
'X-CSRF-TOKEN': '{{ csrf_token() }}'
68+
}
69+
});
70+
var load = layer.load();
71+
$.post("{{ route('admin.new_pwd.white') }}", data.field,
72+
function (data) {
73+
layer.close(load);
74+
console.log(data);
75+
if (data.code === 0) {
76+
layer.msg('操作成功', {
77+
offset: '15px'
78+
, icon: 1
79+
, time: 1000
80+
}, function () {
81+
location.href = '{{ route('admin.user.index') }}';
82+
});
83+
84+
} else {
85+
layer.msg(data.msg, {
86+
offset: '15px'
87+
, icon: 2
88+
, time: 2000
89+
});
90+
}
91+
});
92+
});
93+
94+
});
95+
</script>
96+
@endsection

resources/views/admin/user/create.blade.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<input type="password" name="password" required lay-verify="required|pass" placeholder="请输入密码"
2525
autocomplete="off" class="layui-input">
2626
</div>
27-
<div class="layui-form-mid layui-word-aux">6-12位</div>
27+
<div class="layui-form-mid layui-word-aux">6-20位</div>
2828
</div>
2929
<div class="layui-form-item" style="width: 500px;">
3030
<label class="layui-form-label">确认密码</label>
@@ -88,8 +88,8 @@
8888
//我们既支持上述函数式的方式,也支持下述数组的形式
8989
//数组的两个值分别代表:[正则匹配、匹配不符时的提示文字]
9090
, pass: [
91-
/^[\S]{6,12}$/
92-
, '密码必须6到12位,且不能出现空格'
91+
/^[\S]{6,20}$/
92+
, '密码必须6到20位,且不能出现空格'
9393
]
9494
});
9595

resources/views/admin/user/edit.blade.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<input type="password" name="password" required placeholder="请输入密码"
3636
autocomplete="off" class="layui-input">
3737
</div>
38-
<div class="layui-form-mid layui-word-aux">6-12位,留空表示不修改</div>
38+
<div class="layui-form-mid layui-word-aux">6-20位,留空表示不修改</div>
3939
</div>
4040
<div class="layui-form-item" style="width: 500px;">
4141
<label class="layui-form-label">确认密码</label>
@@ -132,8 +132,6 @@
132132
});
133133
134134
form.on('radio(admin)', function (data) {
135-
console.log(data.elem); //得到radio原始DOM对象
136-
console.log(data.value); //被点击的radio的value值
137135
if (data.value === '1') {
138136
$('#roles').hide();
139137
} else {

0 commit comments

Comments
 (0)