提交 8409bedb 编写于 作者: E eddy8

improve: 管理员列表页展示用户角色

上级 2cbfd005
...@@ -39,6 +39,12 @@ class AdminUser extends Authenticatable ...@@ -39,6 +39,12 @@ class AdminUser extends Authenticatable
] ]
]; ];
public static $listField = [
'name' => '用户名',
'statusText' => '状态',
'roleNames' => '角色',
];
public function comments() public function comments()
{ {
return $this->hasMany('App\Model\Admin\Comment', 'user_id'); return $this->hasMany('App\Model\Admin\Comment', 'user_id');
......
...@@ -23,6 +23,7 @@ class AdminUserRepository ...@@ -23,6 +23,7 @@ class AdminUserRepository
->where(function ($query) use ($condition) { ->where(function ($query) use ($condition) {
Searchable::buildQuery($query, $condition); Searchable::buildQuery($query, $condition);
}) })
->with('roles')
->orderBy('id', 'desc') ->orderBy('id', 'desc')
->paginate($perPage); ->paginate($perPage);
$data->transform(function ($item) { $data->transform(function ($item) {
...@@ -32,6 +33,8 @@ class AdminUserRepository ...@@ -32,6 +33,8 @@ class AdminUserRepository
$item->statusText = $item->status == AdminUser::STATUS_ENABLE ? $item->statusText = $item->status == AdminUser::STATUS_ENABLE ?
'<span class="layui-badge layui-bg-green">启用</span>' : '<span class="layui-badge layui-bg-green">启用</span>' :
'<span class="layui-badge">禁用</span>'; '<span class="layui-badge">禁用</span>';
$item->roleNames = xssFilter($item->getRoleNames()->join(','));
unset($item->roles);
return $item; return $item;
}); });
......
...@@ -36,8 +36,12 @@ function isChecked($value, $options) ...@@ -36,8 +36,12 @@ function isChecked($value, $options)
return in_array($value, explode(',', $options), true); return in_array($value, explode(',', $options), true);
} }
function xssFilter(Model $data) function xssFilter($data)
{ {
if (is_string($data)) {
return htmlspecialchars($data, ENT_QUOTES | ENT_SUBSTITUTE, 'utf-8');
}
$attributes = $data->getAttributes(); $attributes = $data->getAttributes();
foreach ($attributes as &$v) { foreach ($attributes as &$v) {
if (is_string($v)) { if (is_string($v)) {
......
...@@ -20,8 +20,7 @@ ...@@ -20,8 +20,7 @@
<thead> <thead>
<tr> <tr>
<th lay-data="{field:'id', width:80, sort: true}">ID</th> <th lay-data="{field:'id', width:80, sort: true}">ID</th>
<th lay-data="{field:'name'}">用户名</th> @include('admin.listHead', ['data' => App\Model\Admin\AdminUser::$listField])
<th lay-data="{field:'statusText'}">状态</th>
<th lay-data="{field:'created_at'}">添加时间</th> <th lay-data="{field:'created_at'}">添加时间</th>
<th lay-data="{field:'updated_at'}">更新时间</th> <th lay-data="{field:'updated_at'}">更新时间</th>
<th lay-data="{width:200, templet:'#action'}">操作</th> <th lay-data="{width:200, templet:'#action'}">操作</th>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-input-block"> <div class="layui-input-block">
@foreach($roles as $role) @foreach($roles as $role)
<input type="checkbox" name="role[{{$role->id}}]" title="{{ $role->name }}" value="{{ $role->name }}" lay-skin="primary" @if(in_array($role->name, $userRoles->toArray())) checked @endif> <input type="checkbox" name="role[{{$role->id}}]" title="{{ xssFilter($role->name) }}" value="{{ $role->name }}" lay-skin="primary" @if(in_array($role->name, $userRoles->toArray())) checked @endif>
@endforeach @endforeach
</div> </div>
</div> </div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册