Skip to content

Commit 39f79a8

Browse files
committed
Finish cleaning up subuser view
1 parent ee81de6 commit 39f79a8

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

app/Http/Controllers/Api/Client/Servers/SubuserController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,6 @@ public function delete(DeleteSubuserRequest $request, Server $server)
123123
*/
124124
protected function getDefaultPermissions(Request $request): array
125125
{
126-
return array_merge($request->input('permissions') ?? [], ['websocket.*']);
126+
return array_unique(array_merge($request->input('permissions') ?? [], ['websocket.*']));
127127
}
128128
}

app/Services/Subusers/SubuserCreationService.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public function handle(Server $server, string $email, array $permissions): Subus
103103
return $this->subuserRepository->create([
104104
'user_id' => $user->id,
105105
'server_id' => $server->id,
106-
'permissions' => $permissions,
106+
'permissions' => array_unique($permissions),
107107
]);
108108
});
109109
}

resources/scripts/components/server/users/UserRow.tsx

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
44
import { faPencilAlt } from '@fortawesome/free-solid-svg-icons/faPencilAlt';
55
import RemoveSubuserButton from '@/components/server/users/RemoveSubuserButton';
66
import EditSubuserModal from '@/components/server/users/EditSubuserModal';
7+
import { faUnlockAlt } from '@fortawesome/free-solid-svg-icons/faUnlockAlt';
8+
import { faUserLock } from '@fortawesome/free-solid-svg-icons/faUserLock';
9+
import classNames from 'classnames';
710

811
interface Props {
912
subuser: Subuser;
@@ -28,10 +31,29 @@ export default ({ subuser }: Props) => {
2831
<div className={'ml-4 flex-1'}>
2932
<p className={'text-sm'}>{subuser.email}</p>
3033
</div>
34+
<div className={'ml-4'}>
35+
<p className={'font-medium text-center'}>
36+
&nbsp;
37+
<FontAwesomeIcon
38+
icon={subuser.twoFactorEnabled ? faUserLock : faUnlockAlt}
39+
className={classNames('fa-fw', {
40+
'text-red-400': !subuser.twoFactorEnabled,
41+
})}
42+
/>
43+
&nbsp;
44+
</p>
45+
<p className={'text-2xs text-neutral-500 uppercase'}>2FA Enabled</p>
46+
</div>
47+
<div className={'ml-4'}>
48+
<p className={'font-medium text-center'}>
49+
{subuser.permissions.filter(permission => permission !== 'websocket.*').length}
50+
</p>
51+
<p className={'text-2xs text-neutral-500 uppercase'}>Permissions</p>
52+
</div>
3153
<button
3254
type={'button'}
3355
aria-label={'Edit subuser'}
34-
className={'block text-sm p-2 text-neutral-500 hover:text-neutral-100 transition-colors duration-150 mr-4'}
56+
className={'block text-sm p-2 text-neutral-500 hover:text-neutral-100 transition-colors duration-150 mx-4'}
3557
onClick={() => setVisible(true)}
3658
>
3759
<FontAwesomeIcon icon={faPencilAlt}/>

0 commit comments

Comments
 (0)