Disable Additional Roles in Selfcare #765
-
Hi, for a project, I wanted one user to have one role so I modified the const selectedRoles = roles
? Object.keys(roles).filter((role) =>
memberships.some((it) => it.role === role)
)
: []; Thus I would only display this <div>
{remainingRoles.length > 0 && selectedRoles.length < 1 ? (
<DropdownMenu>
<DropdownMenuTrigger>
<Button variant="outline">
<PlusIcon className="w-3 h-3" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent>
{remainingRoles.map((role: any) => (
<DropdownMenuItem
key={role}
onClick={() =>
setMemberships([
...memberships,
{ role: role, variables: [] },
])
}
>
{roles?.[role].label}
</DropdownMenuItem>
))}
</DropdownMenuContent>
</DropdownMenu>
) : null}
</div> For the current application where user invitation is done from within the app, it works well. However, for projects where we require user invitation from the In this ss below, I don't want the |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
There should be Something like this: export const MembershipsControl = ({ setMemberships, memberships, roles }: MembershipsControlProps) => {
const remainingRoles = roles ? Object.keys(roles).filter(role => !memberships.some(it => it.role === role)) : []
return (
<div className="flex flex-col gap-4">
{memberships.length < 2 ? <div>
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="outline" className="flex gap-2"><PlusIcon className="w-4 h-4"/>{dict.tenant.invite.addRole}</Button>
</DropdownMenuTrigger>
<DropdownMenuContent>
{remainingRoles.map(role => <DropdownMenuItem
key={role}
onClick={() => setMemberships([...memberships, {
role: role,
variables: [],
}])}
>{roles?.[role].label}</DropdownMenuItem>)}
</DropdownMenuContent>
</DropdownMenu>
</div> : null}
... |
Beta Was this translation helpful? Give feedback.
There should be
MembershipsControl
component inlib/tenant/forms/memberships-control.tsx
. You can simply modify the condition to hideDropdownMenu
when there is role selected.Something like this: