Finish cleaning up subuser view
This commit is contained in:
parent
ee81de6534
commit
39f79a8f3c
3 changed files with 25 additions and 3 deletions
|
@ -123,6 +123,6 @@ class SubuserController extends ClientApiController
|
||||||
*/
|
*/
|
||||||
protected function getDefaultPermissions(Request $request): array
|
protected function getDefaultPermissions(Request $request): array
|
||||||
{
|
{
|
||||||
return array_merge($request->input('permissions') ?? [], ['websocket.*']);
|
return array_unique(array_merge($request->input('permissions') ?? [], ['websocket.*']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,7 +103,7 @@ class SubuserCreationService
|
||||||
return $this->subuserRepository->create([
|
return $this->subuserRepository->create([
|
||||||
'user_id' => $user->id,
|
'user_id' => $user->id,
|
||||||
'server_id' => $server->id,
|
'server_id' => $server->id,
|
||||||
'permissions' => $permissions,
|
'permissions' => array_unique($permissions),
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,9 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||||
import { faPencilAlt } from '@fortawesome/free-solid-svg-icons/faPencilAlt';
|
import { faPencilAlt } from '@fortawesome/free-solid-svg-icons/faPencilAlt';
|
||||||
import RemoveSubuserButton from '@/components/server/users/RemoveSubuserButton';
|
import RemoveSubuserButton from '@/components/server/users/RemoveSubuserButton';
|
||||||
import EditSubuserModal from '@/components/server/users/EditSubuserModal';
|
import EditSubuserModal from '@/components/server/users/EditSubuserModal';
|
||||||
|
import { faUnlockAlt } from '@fortawesome/free-solid-svg-icons/faUnlockAlt';
|
||||||
|
import { faUserLock } from '@fortawesome/free-solid-svg-icons/faUserLock';
|
||||||
|
import classNames from 'classnames';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
subuser: Subuser;
|
subuser: Subuser;
|
||||||
|
@ -28,10 +31,29 @@ export default ({ subuser }: Props) => {
|
||||||
<div className={'ml-4 flex-1'}>
|
<div className={'ml-4 flex-1'}>
|
||||||
<p className={'text-sm'}>{subuser.email}</p>
|
<p className={'text-sm'}>{subuser.email}</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div className={'ml-4'}>
|
||||||
|
<p className={'font-medium text-center'}>
|
||||||
|
|
||||||
|
<FontAwesomeIcon
|
||||||
|
icon={subuser.twoFactorEnabled ? faUserLock : faUnlockAlt}
|
||||||
|
className={classNames('fa-fw', {
|
||||||
|
'text-red-400': !subuser.twoFactorEnabled,
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p className={'text-2xs text-neutral-500 uppercase'}>2FA Enabled</p>
|
||||||
|
</div>
|
||||||
|
<div className={'ml-4'}>
|
||||||
|
<p className={'font-medium text-center'}>
|
||||||
|
{subuser.permissions.filter(permission => permission !== 'websocket.*').length}
|
||||||
|
</p>
|
||||||
|
<p className={'text-2xs text-neutral-500 uppercase'}>Permissions</p>
|
||||||
|
</div>
|
||||||
<button
|
<button
|
||||||
type={'button'}
|
type={'button'}
|
||||||
aria-label={'Edit subuser'}
|
aria-label={'Edit subuser'}
|
||||||
className={'block text-sm p-2 text-neutral-500 hover:text-neutral-100 transition-colors duration-150 mr-4'}
|
className={'block text-sm p-2 text-neutral-500 hover:text-neutral-100 transition-colors duration-150 mx-4'}
|
||||||
onClick={() => setVisible(true)}
|
onClick={() => setVisible(true)}
|
||||||
>
|
>
|
||||||
<FontAwesomeIcon icon={faPencilAlt}/>
|
<FontAwesomeIcon icon={faPencilAlt}/>
|
||||||
|
|
Loading…
Reference in a new issue