Skip to content

Commit 0753658

Browse files
committed
update user purview
1 parent 6dce315 commit 0753658

File tree

5 files changed

+113
-3
lines changed

5 files changed

+113
-3
lines changed

app/Http/Controllers/Admin/UserController.php

+25-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use App\Http\Controllers\Controller;
88
use App\Loggers\SystemLogger;
99
use App\Repositories\UserRepository;
10+
use App\Repositories\RoleRepository;
1011
use Gate;
1112

1213
/**
@@ -17,6 +18,12 @@
1718
class UserController extends BackController
1819
{
1920

21+
/**
22+
* The RoleRepository instance.
23+
*
24+
* @var App\Repositories\RoleRepository
25+
*/
26+
protected $role;
2027

2128
/**
2229
* The UserRepository instance.
@@ -26,15 +33,18 @@ class UserController extends BackController
2633
protected $user;
2734

2835
public function __construct(
29-
UserRepository $user)
36+
UserRepository $user,
37+
RoleRepository $role)
3038
{
3139
parent::__construct();
3240
$this->user = $user;
41+
$this->role = $role;
42+
3343
if (Gate::denies('@user')) {
3444
$this->middleware('deny403');
3545
}
3646
}
37-
47+
3848

3949
/**
4050
* Display a listing of the resource.
@@ -159,4 +169,17 @@ public function update(UserRequest $request, $id)
159169
return redirect()->to(site_path('user', 'admin'))->with('message', '修改管理员成功!');
160170

161171
}
172+
173+
/**
174+
* Get role's purview of specific role
175+
* @param int $rid
176+
* @return Response
177+
*/
178+
public function getPurview($rid)
179+
{
180+
$role = $this->role->edit($rid);
181+
$permissions = $this->role->permissions();
182+
$cans = $this->role->getRoleCans($role);
183+
return view('admin.back.user.purview', compact('role', 'permissions', 'cans'));
184+
}
162185
}

app/Http/routes.php

+1
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
Route::put('me', 'MeController@putMe');
126126

127127
Route::resource('user', 'UserController');
128+
Route::get('user/purview/{rid}', 'UserController@getPurview');
128129
Route::resource('role', 'RoleController');
129130
Route::resource('permission', 'PermissionController');
130131

docs/install.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# 安装
22

3-
> 诸如 `composer` 包镜像站点不稳定等问题,请自行解决,墙都不会翻,还敢自称码农
3+
此说明文档可能已过时,请访问在线文档:http://www.yascmf.com/docs/install.md
44

5+
> 诸如 `composer` 包镜像站点不稳定等问题,请自行解决,墙都不会翻,还敢自称码农。
56
67
## 安装说明
78

resources/views/admin/back/user/index.blade.php

+22
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
</td>
7272
<td class="text-red">
7373
@if(null !== $user->roles->first()) {{-- 某些错误情况下,会造成管理用户没有角色 --}}
74+
<a class="layer_open" data-title="{{ $user->username }} / {{ $user->nickname }} 管理用户权限详情" href="{{ _route('admin:user.purview.show', $user->roles->first()->id) }}"><i class="fa fa-fw fa-info-circle" title="管理用户权限详情"></i></a>
75+
7476
{{ $user->roles->first()->name }}({{ $user->roles->first()->display_name }})
7577
@else
7678
NULL(空)
@@ -96,3 +98,23 @@
9698
</div>
9799
@stop
98100

101+
@section('extraSection')
102+
<!--引入layer插件-->
103+
<script src="{{ _asset(ref('layer.js')) }}"></script>
104+
@stop
105+
106+
@section('filledScript')
107+
$('a.layer_open').on('click', function(evt){
108+
evt.preventDefault();
109+
var src = $(this).attr("href");
110+
var title = $(this).data('title');
111+
layer.open({
112+
type: 2,
113+
title: title,
114+
shadeClose: true,
115+
shade: 0.8,
116+
area: ['800px', '720px'],
117+
content: src //iframe的url
118+
});
119+
});
120+
@stop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?php error_reporting(0); ?>
2+
3+
<!DOCTYPE html>
4+
<html lang="en">
5+
<head>
6+
<meta charset="UTF-8">
7+
<title>layer</title>
8+
<!-- bootstrap & fontawesome -->
9+
<link rel="stylesheet" href="{{ _asset(ref('bootstrap.css')) }}" />
10+
<link rel="stylesheet" href="{{ _asset(ref('font-awesome.css')) }}" />
11+
<script type="text/javascript" src="{{ _asset(ref('jquery.js')) }}"></script>
12+
<script type="text/javascript" src="{{ _asset(ref('layer.js')) }}"></script>
13+
<link href="{{ _asset('back/dist/css/yascmf.css') }}" rel="stylesheet" type="text/css" />
14+
<link href="{{ _asset(ref('icheck_all.css')) }}" rel="stylesheet" type="text/css" />
15+
16+
</head>
17+
<body>
18+
<div class="layerForm" style="margin: 10px; padding-left: 20px;">
19+
20+
<div class="tab-pane active" id="tab_1">
21+
<div class="form-horizontal">
22+
<div class="form-group">
23+
<label>角色权限 <small class="text-red">*</small></label>
24+
<div class="input-group">
25+
@foreach($permissions as $index => $per)
26+
@if(starts_with($per->name, '@') && $index !== 0)
27+
<br>
28+
@endif
29+
<input type="checkbox" name="permissions[]" value="{{ $per->id }}" {{ (check_array($cans,'id', $per->id) === true) ? 'checked' : '' }} readonly="readonly">
30+
<label class="choice" for="permissions[]" data-value="{{ $per->id }}" style="cursor: pointer;"><span class="text-green">{{ $per->name }}</span>[<span class="text-red">{{ $per->display_name }}</span>]</label>
31+
@endforeach
32+
</div>
33+
</div>
34+
</div>
35+
36+
</div><!-- /.tab-pane -->
37+
38+
</div>
39+
<div id="layerPreviewPic" class="fn-hide">
40+
41+
</div>
42+
43+
<!--引入iCheck组件-->
44+
<script src="{{ _asset(ref('icheck.js')) }}" type="text/javascript"></script>
45+
<script type="text/javascript">
46+
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
47+
$('.layer-close').on('click', function(){
48+
parent.layer.close(index); //执行关闭
49+
});
50+
<!--启用iCheck响应checkbox与radio表单控件-->
51+
$('input[name="permissions[]"]').iCheck({
52+
checkboxClass: 'icheckbox_flat-blue',
53+
increaseArea: '20%', // optional
54+
});
55+
56+
<!--响应点击label 选中或者取消选中-->
57+
$('label.choice').click(function() {
58+
var value = $(this).data('value');
59+
$('input[name="permissions[]"][value='+value+']').iCheck('toggle');
60+
});
61+
</script>
62+
</body>
63+
</html>

0 commit comments

Comments
 (0)