Skip to content

Commit 8577ccb

Browse files
author
zhangjiangbin
committed
细节优化
1 parent 6b311b9 commit 8577ccb

21 files changed

Lines changed: 303 additions & 129 deletions

app/Http/Controllers/AdminController.php

Lines changed: 58 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@
1717

1818
class AdminController extends BaseController
1919
{
20+
protected static $config;
21+
22+
function __construct()
23+
{
24+
self::$config = $this->systemConfig();
25+
}
26+
2027
public function index(Request $request)
2128
{
2229
if (!$request->session()->has('user')) {
@@ -187,9 +194,8 @@ public function addUser(Request $request)
187194
}
188195
} else {
189196
// 最后一个可用端口
190-
$config = $this->systemConfig();
191197
$last_user = User::orderBy('id', 'desc')->first();
192-
$view['last_port'] = $config['is_rand_port'] ? $this->getRandPort() : $last_user->port + 1;
198+
$view['last_port'] = self::$config['is_rand_port'] ? $this->getRandPort() : $last_user->port + 1;
193199

194200
// 加密方式、协议、混淆
195201
$view['method_list'] = $this->methodList();
@@ -484,7 +490,7 @@ public function articleList(Request $request)
484490
return Redirect::to('login');
485491
}
486492

487-
$articleList = Article::paginate(10);
493+
$articleList = Article::orderBy('sort', 'desc')->paginate(10);
488494

489495
$view['articleList'] = $articleList;
490496

@@ -959,6 +965,7 @@ public function monitor(Request $request)
959965
}
960966

961967
$view['traffic'] = $traffic;
968+
$view['nodeList'] = $node_list;
962969

963970
return Response::view('admin/monitor', $view);
964971
}
@@ -1120,54 +1127,80 @@ public function system(Request $request)
11201127
return Response::view('admin/system', $view);
11211128
}
11221129

1123-
// 启用、禁用随机端口
1124-
public function enableRandPort(Request $request)
1130+
// 设置某个配置项
1131+
public function setConfig(Request $request)
11251132
{
1126-
$value = intval($request->get('value'));
1133+
$name = trim($request->get('name'));
1134+
$value = trim($request->get('value'));
1135+
1136+
if ($name == '' || $value == '') {
1137+
return Response::json(['status' => 'fail', 'data' => '', 'message' => '设置失败:请求参数异常']);
1138+
}
11271139

1128-
Config::where('id', 1)->update(['value' => $value]);
1140+
// 屏蔽异常配置
1141+
if (!array_key_exists($name, self::$config)) {
1142+
return Response::json(['status' => 'fail', 'data' => '', 'message' => '设置失败:配置不存在']);
1143+
}
1144+
1145+
// 如果开启用户邮件重置密码,则先设置网站名称和网址
1146+
if ($name == 'is_reset_password' && $value == '1') {
1147+
$config = Config::where('name', 'website_name')->first();
1148+
if ($config->value == '') {
1149+
return Response::json(['status' => 'fail', 'data' => '', 'message' => '设置失败:开启重置密码需要先设置【网站名称】']);
1150+
}
1151+
1152+
$config = Config::where('name', 'website_url')->first();
1153+
if ($config->value == '') {
1154+
return Response::json(['status' => 'fail', 'data' => '', 'message' => '设置失败:开启重置密码需要先设置【网站地址】']);
1155+
}
1156+
}
1157+
1158+
$ret = Config::where('name', $name)->update(['value' => $value]);
1159+
if (!$ret) {
1160+
return Response::json(['status' => 'fail', 'data' => '', 'message' => '设置失败']);
1161+
}
11291162

11301163
return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
11311164
}
11321165

1133-
// 启用、禁用自定义端口
1134-
public function enableUserRandPort(Request $request)
1166+
// 设置可生成邀请码数
1167+
public function setInviteNum(Request $request)
11351168
{
11361169
$value = intval($request->get('value'));
11371170

1138-
Config::where('id', 2)->update(['value' => $value]);
1171+
Config::where('id', 3)->update(['value' => $value]);
11391172

1140-
return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
1173+
return Response::json(['status' => 'success', 'data' => '', 'message' => '设置成功']);
11411174
}
11421175

1143-
// 启用、禁用注册
1144-
public function enableRegister(Request $request)
1176+
// 设置网站名称
1177+
public function setWebsiteName(Request $request)
11451178
{
1146-
$value = intval($request->get('value'));
1179+
$value = trim($request->get('value'));
11471180

1148-
Config::where('id', 4)->update(['value' => $value]);
1181+
Config::where('id', 6)->update(['value' => $value]);
11491182

1150-
return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
1183+
return Response::json(['status' => 'success', 'data' => '', 'message' => '设置成功']);
11511184
}
11521185

1153-
// 启用、禁用邀请注册
1154-
public function enableInviteRegister(Request $request)
1186+
// 设置网站地址
1187+
public function setWebsiteUrl(Request $request)
11551188
{
1156-
$value = intval($request->get('value'));
1189+
$value = trim($request->get('value'));
11571190

1158-
Config::where('id', 5)->update(['value' => $value]);
1191+
Config::where('id', 9)->update(['value' => $value]);
11591192

1160-
return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
1193+
return Response::json(['status' => 'success', 'data' => '', 'message' => '设置成功']);
11611194
}
11621195

1163-
// 设置可生成邀请码数
1164-
public function setInviteNum(Request $request)
1196+
// 设置重置密码次数
1197+
public function setResetPasswordTimes(Request $request)
11651198
{
11661199
$value = intval($request->get('value'));
11671200

1168-
Config::where('id', 3)->update(['value' => $value]);
1201+
Config::where('id', 8)->update(['value' => $value]);
11691202

1170-
return Response::json(['status' => 'success', 'data' => '', 'message' => '操作成功']);
1203+
return Response::json(['status' => 'success', 'data' => '', 'message' => '设置成功']);
11711204
}
11721205

11731206
// 邀请码列表

app/Http/Controllers/LoginController.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,19 @@ public function index(Request $request)
2323

2424
if (empty($username) || empty($password)) {
2525
$request->session()->flash('errorMsg', '请输入用户名和密码');
26-
return Redirect::to('login');
26+
27+
return Redirect::back();
2728
}
2829

2930
$user = User::where('username', $username)->where('password', md5($password))->first();
3031
if (!$user) {
3132
$request->session()->flash('errorMsg', '用户名或密码错误');
32-
return Redirect::to('login');
33+
34+
return Redirect::back()->withInput();
35+
} else if (!$user->enable) {
36+
$request->session()->flash('errorMsg', '账号已禁用');
37+
38+
return Redirect::back();
3339
}
3440

3541
$request->session()->put('user', $user->toArray());

app/Http/Controllers/RegisterController.php

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
*/
1616
class RegisterController extends BaseController
1717
{
18+
protected static $config;
19+
20+
function __construct()
21+
{
22+
self::$config = $this->systemConfig();
23+
}
24+
1825
// 注册页
1926
public function index(Request $request)
2027
{
@@ -42,17 +49,15 @@ public function index(Request $request)
4249
return Redirect::back()->withInput($request->except(['password', 'repassword']));
4350
}
4451

45-
$config = $this->systemConfig();
46-
4752
// 是否开启注册
48-
if (!$config['is_register']) {
53+
if (!self::$config['is_register']) {
4954
$request->session()->flash('errorMsg', '系统维护暂停注册,如需账号请联系管理员');
5055

5156
return Redirect::back();
5257
}
5358

5459
// 如果需要邀请注册
55-
if ($config['is_invite_register']) {
60+
if (self::$config['is_invite_register']) {
5661
if (empty($code)) {
5762
$request->session()->flash('errorMsg', '请输入邀请码');
5863

@@ -77,9 +82,8 @@ public function index(Request $request)
7782
}
7883

7984
// 最后一个可用端口
80-
$config = $this->systemConfig();
8185
$last_user = User::orderBy('id', 'desc')->first();
82-
$port = $config['is_rand_port'] ? $this->getRandPort() : $last_user->port + 1;
86+
$port = self::$config['is_rand_port'] ? $this->getRandPort() : $last_user->port + 1;
8387

8488
// 创建新用户
8589
$obj = new User();
@@ -94,15 +98,14 @@ public function index(Request $request)
9498
$obj->save();
9599

96100
// 更新邀请码
97-
if ($config['is_invite_register'] && $obj->id) {
101+
if (self::$config['is_invite_register'] && $obj->id) {
98102
Invite::where('id', $code->id)->update(['fuid' => $obj->id,'status' => 1]);
99103
}
100104

101105
return Redirect::to('login');
102106
} else {
103-
$config = $this->systemConfig();
104-
$view['is_register'] = $config['is_register'];
105-
$view['is_invite_register'] = $config['is_invite_register'];
107+
$view['is_register'] = self::$config['is_register'];
108+
$view['is_invite_register'] = self::$config['is_invite_register'];
106109

107110
return Response::view('register', $view);
108111
}

app/Http/Controllers/UserController.php

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020

2121
class UserController extends BaseController
2222
{
23+
protected static $config;
24+
25+
function __construct()
26+
{
27+
self::$config = $this->systemConfig();
28+
}
29+
2330
public function index(Request $request)
2431
{
2532
if (!$request->session()->has('user')) {
@@ -232,9 +239,8 @@ public function invite(Request $request)
232239

233240
// 已生成的邀请码数量
234241
$num = Invite::where('uid', $user['id'])->count();
235-
$config = $this->systemConfig();
236242

237-
$view['num'] = $config['invite_num'] - $num <= 0 ? 0 : $config['invite_num'] - $num; // 还可以生成的邀请码数量
243+
$view['num'] = self::$config['invite_num'] - $num <= 0 ? 0 : self::$config['invite_num'] - $num; // 还可以生成的邀请码数量
238244
$view['inviteList'] = Invite::where('uid', $user['id'])->with(['generator', 'user'])->paginate(10); // 邀请码列表
239245

240246
return Response::view('user/invite', $view);
@@ -251,9 +257,8 @@ public function makeInvite(Request $request)
251257

252258
// 已生成的邀请码数量
253259
$num = Invite::where('uid', $user['id'])->count();
254-
$config = $this->systemConfig();
255-
if ($num >= $config['invite_num']) {
256-
return Response::json(['status' => 'fail', 'data' => '', 'message' => '生成失败:最多只能生成' . $config['invite_num'] . '个邀请码']);
260+
if ($num >= self::$config['invite_num']) {
261+
return Response::json(['status' => 'fail', 'data' => '', 'message' => '生成失败:最多只能生成' . self::$config['invite_num'] . '个邀请码']);
257262
}
258263

259264
$obj = new Invite();
@@ -270,13 +275,11 @@ public function makeInvite(Request $request)
270275
// 重设密码
271276
public function resetPassword(Request $request)
272277
{
273-
$config = $this->systemConfig();
274-
275278
if ($request->method() == 'POST') {
276279
$username = trim($request->get('username'));
277280

278281
// 是否开启重设密码
279-
if (!$config['is_reset_password']) {
282+
if (!self::$config['is_reset_password']) {
280283
$request->session()->flash('errorMsg', '系统未开启重置密码功能,请联系管理员');
281284

282285
return Redirect::back()->withInput();
@@ -294,15 +297,15 @@ public function resetPassword(Request $request)
294297
$resetTimes = 0;
295298
if (Cache::has('resetPassword_' . md5($username))) {
296299
$resetTimes = Cache::get('resetPassword_' . md5($username));
297-
if ($resetTimes >= $config['reset_password_times']) {
298-
$request->session()->flash('errorMsg', '同一个账号24小时内只能重设密码' . $config['reset_password_times'] . '次,请勿频繁操作');
300+
if ($resetTimes >= self::$config['reset_password_times']) {
301+
$request->session()->flash('errorMsg', '同一个账号24小时内只能重设密码' . self::$config['reset_password_times'] . '次,请勿频繁操作');
299302

300303
return Redirect::back();
301304
}
302305
}
303306

304307
// 生成取回密码的地址
305-
$token = md5($config['website_name'] . $username . microtime());
308+
$token = md5(self::$config['website_name'] . $username . microtime());
306309
$verify = new Verify();
307310
$verify->user_id = $user->id;
308311
$verify->username = $username;
@@ -311,15 +314,15 @@ public function resetPassword(Request $request)
311314
$verify->save();
312315

313316
// 发送邮件
314-
$resetPasswordUrl = $config['website_url'] . '/reset/' . $token;
315-
Mail::to($user->username)->send(new resetPassword($config['website_name'], $resetPasswordUrl));
317+
$resetPasswordUrl = self::$config['website_url'] . '/reset/' . $token;
318+
Mail::to($user->username)->send(new resetPassword(self::$config['website_name'], $resetPasswordUrl));
316319

317320
Cache::put('resetPassword_' . md5($username), $resetTimes + 1, 1440);
318321
$request->session()->flash('successMsg', '重置成功,请查看邮箱');
319322

320323
return Redirect::back();
321324
} else {
322-
$view['is_reset_password'] = $config['is_reset_password'];
325+
$view['is_reset_password'] = self::$config['is_reset_password'];
323326

324327
return Response::view('user/resetPassword', $view);
325328
}

composer.phar

17.6 KB
Binary file not shown.

config/mail.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757

5858
'from' => [
5959
'address' => 'xxx@qq.com',
60-
'name' => 'ÖØÖÃÃÜÂë',
60+
'name' => '重置密码',
6161
],
6262

6363
/*

readme.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ config\database.php mysql选项自行配置数据库
4949
确保 storage/framework 下有 cache sessions views 三个目录,且 storage 有777权限
5050
````
5151

52+
#### 发送邮件配置
53+
````
54+
config\mail.php 修改其中的配置
55+
````
56+
5257
#### NGINX配置文件加入
5358
````
5459
location / {

resources/views/admin/articleList.blade.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,23 @@
4242
<th> ID </th>
4343
<th> 标题 </th>
4444
<th> 排序 </th>
45+
<th> 发布日期 </th>
4546
<th> 状态 </th>
4647
<th> 操作 </th>
4748
</tr>
4849
</thead>
4950
<tbody>
5051
@if($articleList->isEmpty())
5152
<tr>
52-
<td colspan="5">暂无数据</td>
53+
<td colspan="6">暂无数据</td>
5354
</tr>
5455
@else
5556
@foreach($articleList as $article)
5657
<tr class="odd gradeX">
5758
<td> {{$article->id}} </td>
5859
<td> <a href="{{url('user/article?id=' . $article->id)}}" target="_blank"> {{$article->title}} </a> </td>
5960
<td> {{$article->sort}} </td>
61+
<td> {{$article->created_at}} </td>
6062
<td> <span class="label label-danger"> {{$article->is_del ? '已删除' : '未删除'}} </span> </td>
6163
<td>
6264
<button type="button" class="btn btn-sm blue btn-outline" onclick="editArticle('{{$article->id}}')">编辑</button>

resources/views/admin/inviteList.blade.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,7 @@ function makeInvite() {
117117
dataType: 'json',
118118
success: function (ret) {
119119
if (ret.status == 'success') {
120-
bootbox.alert(ret.message, function () {
121-
window.location.reload();
122-
});
120+
window.location.reload();
123121
} else {
124122
bootbox.alert(ret.message);
125123
}

resources/views/admin/layouts.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@
181181
<li class="nav-item {{Request::getRequestUri() == '/admin/system' ? 'active open' : ''}}">
182182
<a href="{{url('admin/system')}}" class="nav-link ">
183183
<i class="icon-wrench"></i>
184-
<span class="title">系统配置</span>
184+
<span class="title">系统设置</span>
185185
</a>
186186
</li>
187187
</ul>

0 commit comments

Comments
 (0)