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

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

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