mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-18 05:02:14 +01:00
filter placeholder role so it cannot be selected for invites
This commit is contained in:
@@ -10,6 +10,7 @@ import InputError from '@/Components/InputError.vue';
|
|||||||
import type { Role } from '@/types/jetstream';
|
import type { Role } from '@/types/jetstream';
|
||||||
import { useForm } from '@inertiajs/vue3';
|
import { useForm } from '@inertiajs/vue3';
|
||||||
import { getCurrentOrganizationId } from '@/utils/useUser';
|
import { getCurrentOrganizationId } from '@/utils/useUser';
|
||||||
|
import { filterRoles } from '@/utils/roles';
|
||||||
|
|
||||||
const show = defineModel('show', { default: false });
|
const show = defineModel('show', { default: false });
|
||||||
const saving = ref(false);
|
const saving = ref(false);
|
||||||
@@ -78,7 +79,7 @@ useFocus(clientNameInput, { initialValue: true });
|
|||||||
<div
|
<div
|
||||||
class="relative z-0 mt-1 border border-card-border rounded-lg cursor-pointer">
|
class="relative z-0 mt-1 border border-card-border rounded-lg cursor-pointer">
|
||||||
<button
|
<button
|
||||||
v-for="(role, i) in availableRoles"
|
v-for="(role, i) in filterRoles(availableRoles)"
|
||||||
:key="role.key"
|
:key="role.key"
|
||||||
type="button"
|
type="button"
|
||||||
class="relative px-4 py-3 inline-flex w-full rounded-lg focus:z-10 focus:outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500"
|
class="relative px-4 py-3 inline-flex w-full rounded-lg focus:z-10 focus:outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500"
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ defineProps<{
|
|||||||
:href="href"
|
:href="href"
|
||||||
:class="
|
:class="
|
||||||
twMerge(
|
twMerge(
|
||||||
'contents [&>*]:hover:bg-white/5 [&>*]:transition [&>*]:cursor-pointer [&>*]:border-row-separator [&>*]:border-b',
|
'contents [&>*]:transition [&>*]:border-row-separator [&>*]:border-b',
|
||||||
href ? '[&>*]:cursor-pointer' : ''
|
href ? '[&>*]:cursor-pointer [&>*]:hover:bg-white/5' : ''
|
||||||
)
|
)
|
||||||
">
|
">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import type {
|
|||||||
User,
|
User,
|
||||||
} from '@/types/models';
|
} from '@/types/models';
|
||||||
import type { Membership, Permissions, Role } from '@/types/jetstream';
|
import type { Membership, Permissions, Role } from '@/types/jetstream';
|
||||||
|
import { filterRoles } from '@/utils/roles';
|
||||||
|
|
||||||
type UserWithMembership = User & { membership: Membership };
|
type UserWithMembership = User & { membership: Membership };
|
||||||
|
|
||||||
@@ -169,7 +170,7 @@ const displayableRole = (role: string) => {
|
|||||||
<div
|
<div
|
||||||
class="relative z-0 mt-1 border border-card-border rounded-lg cursor-pointer">
|
class="relative z-0 mt-1 border border-card-border rounded-lg cursor-pointer">
|
||||||
<button
|
<button
|
||||||
v-for="(role, i) in availableRoles"
|
v-for="(role, i) in filterRoles(availableRoles)"
|
||||||
:key="role.key"
|
:key="role.key"
|
||||||
type="button"
|
type="button"
|
||||||
class="relative px-4 py-3 inline-flex w-full rounded-lg focus:z-10 focus:outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500"
|
class="relative px-4 py-3 inline-flex w-full rounded-lg focus:z-10 focus:outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500"
|
||||||
|
|||||||
7
resources/js/utils/roles.ts
Normal file
7
resources/js/utils/roles.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import type { Role } from '@/types/jetstream';
|
||||||
|
|
||||||
|
export function filterRoles(roles: Role[]) {
|
||||||
|
return roles.filter(function (role) {
|
||||||
|
return role.key !== 'placeholder';
|
||||||
|
});
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user