97 lines
6.4 KiB
PHP
97 lines
6.4 KiB
PHP
<x-layouts.admin>
|
|
<x-slot name="title">用户管理</x-slot>
|
|
|
|
<x-slot name="buttons">
|
|
@if (\App\Utilities\SystemAccess::isSuperAdmin())
|
|
<a href="{{ route('system-settings.groups.index') }}" class="settings-accent mr-4">用户分组</a>
|
|
<a href="{{ route('system-settings.groups.create') }}" class="settings-primary mr-3">创建分组</a>
|
|
@endif
|
|
<a href="{{ route('system-settings.users.create') }}" class="inline-flex items-center gap-2 rounded-lg settings-primary">
|
|
<span class="material-icons-outlined text-lg">person_add</span>
|
|
新增用户
|
|
</a>
|
|
</x-slot>
|
|
|
|
<x-slot name="content">
|
|
<div class="my-6" data-settings-workspace>
|
|
@include('system_settings.partials.navigation')
|
|
|
|
<div class="mb-4 rounded-lg border border-gray-200 bg-white px-4 py-3 text-sm text-gray-700">
|
|
@if (\App\Utilities\SystemAccess::isSuperAdmin())
|
|
主管理员拥有最高权限,可管理全部用户、设置管理员身份和页面访问范围。
|
|
@else
|
|
已显示当前公司的全部账号。管理员可管理普通用户;管理员身份由主管理员设置。
|
|
@endif
|
|
</div>
|
|
|
|
@if ($errors->any())
|
|
<div class="mb-4 rounded-lg bg-red-50 px-4 py-3 text-sm text-red-700">
|
|
@foreach ($errors->all() as $error)<p>{{ $error }}</p>@endforeach
|
|
</div>
|
|
@endif
|
|
|
|
<div class="overflow-x-auto rounded-xl border border-gray-200 bg-white">
|
|
<table class="settings-users-table divide-y divide-gray-200 text-sm">
|
|
<colgroup><col style="width:18%"><col style="width:32%"><col style="width:16%"><col style="width:10%"><col style="width:24%"></colgroup>
|
|
<thead class="bg-gray-50 text-left text-gray-500">
|
|
<tr>
|
|
<th class="px-5 py-3">姓名</th>
|
|
<th class="px-5 py-3">邮箱</th>
|
|
<th class="px-5 py-3">权限身份</th>
|
|
<th class="px-5 py-3">状态</th>
|
|
<th class="px-5 py-3 text-right">操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody class="divide-y divide-gray-100">
|
|
@forelse ($users as $managedUser)
|
|
@php $roleName = \App\Utilities\SystemAccess::roleName($managedUser); @endphp
|
|
<tr>
|
|
<td class="px-5 py-4 font-semibold text-gray-800">
|
|
{{ $managedUser->name }}
|
|
@if (! empty($groupNamesByUser[$managedUser->id]))
|
|
<span class="block text-xs font-normal text-gray-600">分组:{{ implode('、', $groupNamesByUser[$managedUser->id]) }}</span>
|
|
@endif
|
|
@if ($managedUser->id === user()->id)
|
|
<span class="ml-2 inline-block whitespace-nowrap rounded-full bg-lilac-100 px-2 py-0.5 text-xs settings-accent">当前账号</span>
|
|
@endif
|
|
</td>
|
|
<td class="px-5 py-4 text-gray-600"><span class="settings-email" title="{{ $managedUser->email }}">{{ $managedUser->email }}</span></td>
|
|
<td class="px-5 py-4 text-gray-600">{{ $roleLabels[$roleName] ?? ($managedUser->roles->first()?->display_name ?? '-') }}</td>
|
|
<td class="px-5 py-4">
|
|
<span @class([
|
|
'rounded-full px-2.5 py-1 text-xs font-semibold',
|
|
'bg-green-100 text-green-700' => $managedUser->enabled,
|
|
'bg-gray-100 text-gray-500' => ! $managedUser->enabled,
|
|
])>{{ $managedUser->enabled ? '启用' : '停用' }}</span>
|
|
</td>
|
|
<td class="px-5 py-4 text-right whitespace-nowrap">
|
|
@if (\App\Utilities\SystemAccess::canManageUser(user(), $managedUser))
|
|
<a href="{{ route('system-settings.users.edit', $managedUser->id) }}" class="mr-4 settings-accent hover:underline">修改</a>
|
|
@if (in_array($roleName, [\App\Utilities\SystemAccess::ADMIN, \App\Utilities\SystemAccess::USER], true))
|
|
@if (\App\Utilities\SystemAccess::isSuperAdmin())
|
|
<a href="{{ route('system-settings.groups.membership.edit', $managedUser->id) }}" class="mr-4 settings-accent hover:underline">管理分组</a>
|
|
@endif
|
|
<a href="{{ route('system-settings.sidebar.edit', ['subject' => 'user_'.$managedUser->id]) }}" class="mr-4 settings-accent hover:underline">页面权限</a>
|
|
@endif
|
|
@if ($managedUser->id !== user()->id && ! $managedUser->dingtalkIdentity)
|
|
<form method="POST" action="{{ route('system-settings.users.destroy', $managedUser->id) }}" class="inline" onsubmit="return confirm('确定删除该用户吗?')">
|
|
@csrf
|
|
@method('DELETE')
|
|
<button type="submit" class="text-red-600 hover:underline">删除</button>
|
|
</form>
|
|
@endif
|
|
@else
|
|
<span class="text-gray-400">-</span>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
@empty
|
|
<tr><td colspan="5" class="px-5 py-12 text-center text-gray-400">暂无用户</td></tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</x-slot>
|
|
</x-layouts.admin>
|