Skip to content

Commit 397cebc

Browse files
author
zhangjiangbin
committed
1.管理员/用户权限分离
2.防爬虫 3.修正管理后台一些BUG、优化细节、删除无用代码 4.加入用户端(开发中)
1 parent 81f8b70 commit 397cebc

15 files changed

Lines changed: 989 additions & 121 deletions

app/Http/Controllers/AdminController.php

Lines changed: 94 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ public function index(Request $request)
2121
return Redirect::to('login');
2222
}
2323

24+
if (!$request->session()->get('user')['is_admin']) {
25+
return Redirect::to('login');
26+
}
27+
2428
$past = strtotime(date('Y-m-d', strtotime("-7 days")));
2529
$online = time() - 3600;
2630

@@ -47,6 +51,10 @@ public function userList(Request $request)
4751
return Redirect::to('login');
4852
}
4953

54+
if (!$request->session()->get('user')['is_admin']) {
55+
return Redirect::to('login');
56+
}
57+
5058
$username = $request->get('username');
5159
$wechat = $request->get('wechat');
5260
$qq = $request->get('qq');
@@ -104,6 +112,10 @@ public function addUser(Request $request)
104112
return Redirect::to('login');
105113
}
106114

115+
if (!$request->session()->get('user')['is_admin']) {
116+
return Redirect::to('login');
117+
}
118+
107119
if ($request->method() == 'POST') {
108120
$username = $request->get('username');
109121
$password = $request->get('password');
@@ -140,7 +152,7 @@ public function addUser(Request $request)
140152
'password' => $password,
141153
'port' => $port,
142154
'passwd' => empty($passwd) ? $this->makeRandStr() : $passwd, // SS密码为空时生成默认密码
143-
'transfer_enable' => $transfer_enable,
155+
'transfer_enable' => $this->toGB($transfer_enable),
144156
'enable' => $enable,
145157
'method' => $method,
146158
'custom_method' => $custom_method,
@@ -154,7 +166,7 @@ public function addUser(Request $request)
154166
'pay_way' => $pay_way,
155167
'balance' => $balance,
156168
'enable_time' => empty($enable_time) ? date('Y-m-d') : $enable_time,
157-
'expire_time' => empty($expire_time) ? '2099-1-1' : $expire_time,
169+
'expire_time' => empty($expire_time) ? date('Y-m-d', strtotime("+365 days")) : $expire_time,
158170
'remark' => $remark,
159171
'is_admin' => $is_admin,
160172
'reg_ip' => $request->getClientIp()
@@ -188,6 +200,10 @@ public function editUser(Request $request)
188200
return Redirect::to('login');
189201
}
190202

203+
if (!$request->session()->get('user')['is_admin']) {
204+
return Redirect::to('login');
205+
}
206+
191207
$id = $request->get('id');
192208
if ($request->method() == 'POST') {
193209
$username = $request->get('username');
@@ -234,7 +250,7 @@ public function editUser(Request $request)
234250
'pay_way' => $pay_way,
235251
'balance' => $balance,
236252
'enable_time' => empty($enable_time) ? date('Y-m-d') : $enable_time,
237-
'expire_time' => empty($expire_time) ? '2099-1-1' : $expire_time,
253+
'expire_time' => empty($expire_time) ? date('Y-m-d', strtotime("+365 days")) : $expire_time,
238254
'remark' => $remark,
239255
'is_admin' => $is_admin
240256
];
@@ -273,6 +289,10 @@ public function delUser(Request $request)
273289
return Redirect::to('login');
274290
}
275291

292+
if (!$request->session()->get('user')['is_admin']) {
293+
return Redirect::to('login');
294+
}
295+
276296
$id = $request->get('id');
277297
if ($id == 1) {
278298
return Response::json(['status' => 'fail', 'data' => '', 'message' => '系统管理员不可删除']);
@@ -293,6 +313,10 @@ public function nodeList(Request $request)
293313
return Redirect::to('login');
294314
}
295315

316+
if (!$request->session()->get('user')['is_admin']) {
317+
return Redirect::to('login');
318+
}
319+
296320
$nodeList = SsNode::paginate(10);
297321
foreach ($nodeList as &$node) {
298322
// 在线人数
@@ -321,6 +345,10 @@ public function addNode(Request $request)
321345
return Redirect::to('login');
322346
}
323347

348+
if (!$request->session()->get('user')['is_admin']) {
349+
return Redirect::to('login');
350+
}
351+
324352
if ($request->method() == 'POST') {
325353
$name = $request->get('name');
326354
$server = $request->get('server');
@@ -374,6 +402,10 @@ public function editNode(Request $request)
374402
return Redirect::to('login');
375403
}
376404

405+
if (!$request->session()->get('user')['is_admin']) {
406+
return Redirect::to('login');
407+
}
408+
377409
$id = $request->get('id');
378410
if ($request->method() == 'POST') {
379411
$name = $request->get('name');
@@ -435,6 +467,10 @@ public function delNode(Request $request)
435467
return Redirect::to('login');
436468
}
437469

470+
if (!$request->session()->get('user')['is_admin']) {
471+
return Redirect::to('login');
472+
}
473+
438474
$id = $request->get('id');
439475
$user = SsNode::where('id', $id)->delete();
440476
if ($user) {
@@ -451,6 +487,10 @@ public function trafficLog(Request $request)
451487
return Redirect::to('login');
452488
}
453489

490+
if (!$request->session()->get('user')['is_admin']) {
491+
return Redirect::to('login');
492+
}
493+
454494
$trafficLogList = UserTrafficLog::with(['User', 'SsNode'])->orderBy('id', 'desc')->paginate(20);
455495
foreach ($trafficLogList as &$trafficLog) {
456496
$trafficLog->u = $this->flowAutoShow($trafficLog->u);
@@ -470,6 +510,10 @@ public function convert(Request $request)
470510
return Redirect::to('login');
471511
}
472512

513+
if (!$request->session()->get('user')['is_admin']) {
514+
return Redirect::to('login');
515+
}
516+
473517
if ($request->method() == 'POST') {
474518
$method = $request->get('method');
475519
$transfer_enable = $request->get('transfer_enable');
@@ -531,6 +575,10 @@ public function download(Request $request)
531575
return Redirect::to('login');
532576
}
533577

578+
if (!$request->session()->get('user')['is_admin']) {
579+
return Redirect::to('login');
580+
}
581+
534582
if (!file_exists(public_path('downloads/convert.json'))) {
535583
exit('文件不存在');
536584
}
@@ -545,6 +593,10 @@ public function import(Request $request)
545593
return Redirect::to('login');
546594
}
547595

596+
if (!$request->session()->get('user')['is_admin']) {
597+
return Redirect::to('login');
598+
}
599+
548600
if ($request->method() == 'POST') {
549601

550602
if (!$request->hasFile('uploadFile')) {
@@ -636,6 +688,10 @@ public function export(Request $request)
636688
return Redirect::to('login');
637689
}
638690

691+
if (!$request->session()->get('user')['is_admin']) {
692+
return Redirect::to('login');
693+
}
694+
639695
$id = $request->get('id');
640696
if (empty($id)) {
641697
return Redirect::to('admin/userList');
@@ -663,7 +719,7 @@ public function export(Request $request)
663719
$ss_str = '';
664720
$ss_str .= $user->method . ':' . $user->passwd . '@';
665721
$ss_str .= $node->server . ':' . $user->port;
666-
$ss_str .= $this->base64url_encode($ss_str);
722+
$ss_str = $this->base64url_encode($ss_str) . '#' . 'VPN';
667723
$ss_scheme = 'ss://' . $ss_str;
668724

669725
// 生成json配置信息
@@ -716,6 +772,10 @@ public function profile(Request $request)
716772
return Redirect::to('login');
717773
}
718774

775+
if (!$request->session()->get('user')['is_admin']) {
776+
return Redirect::to('login');
777+
}
778+
719779
$user = $request->session()->get('user');
720780

721781
if ($request->method() == 'POST') {
@@ -754,6 +814,10 @@ public function monitor(Request $request)
754814
return Redirect::to('login');
755815
}
756816

817+
if (!$request->session()->get('user')['is_admin']) {
818+
return Redirect::to('login');
819+
}
820+
757821
$id = $request->get('id');
758822
if (empty($id)) {
759823
return Redirect::to('admin/userList');
@@ -794,6 +858,10 @@ public function config(Request $request)
794858
return Redirect::to('login');
795859
}
796860

861+
if (!$request->session()->get('user')['is_admin']) {
862+
return Redirect::to('login');
863+
}
864+
797865
if ($request->method() == 'POST') {
798866
$name = $request->get('name');
799867
$type = $request->get('type', 1); // 类型:1-加密方式(method)、2-协议(protocol)、3-混淆(obfs)
@@ -834,6 +902,10 @@ public function delConfig(Request $request)
834902
return Redirect::to('login');
835903
}
836904

905+
if (!$request->session()->get('user')['is_admin']) {
906+
return Redirect::to('login');
907+
}
908+
837909
$id = $request->get('id');
838910
$config = SsConfig::where('id', $id)->delete();
839911
if ($config) {
@@ -850,6 +922,10 @@ public function setDefaultConfig(Request $request)
850922
return Redirect::to('login');
851923
}
852924

925+
if (!$request->session()->get('user')['is_admin']) {
926+
return Redirect::to('login');
927+
}
928+
853929
$id = $request->get('id');
854930
if (empty($id)) {
855931
return Response::json(['status' => 'fail', 'data' => '', 'message' => '非法请求']);
@@ -876,7 +952,17 @@ public function analysis(Request $request)
876952
return Redirect::to('login');
877953
}
878954

955+
if (!$request->session()->get('user')['is_admin']) {
956+
return Redirect::to('login');
957+
}
958+
879959
$file = storage_path('app/public/ssserver.log');
960+
if (!file_exists($file)) {
961+
$request->session()->flash('analysisErrorMsg', $file . ' 不存在,请先创建文件');
962+
963+
return Response::view('admin/analysis');
964+
}
965+
880966
$logs = $this->tail($file, 10000);
881967
$url = [];
882968
foreach ($logs as $log) {
@@ -907,6 +993,10 @@ public function system(Request $request)
907993
return Redirect::to('login');
908994
}
909995

996+
if (!$request->session()->get('user')['is_admin']) {
997+
return Redirect::to('login');
998+
}
999+
9101000
$view = $this->systemConfig();
9111001

9121002
return Response::view('admin/system', $view);

app/Http/Controllers/HomeController.php

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)