fix(permissions): align workspace resource actions with role rules
This commit is contained in:
@@ -285,10 +285,11 @@ export default function EditWorkspace() {
|
||||
|
||||
const canManageMembers = canWorkspace(myRole, WORKSPACE_MEMBERS_CHANGE_ROLE);
|
||||
const isFirstOwner = currentUserId === workspaceOwnerId;
|
||||
|
||||
const roleOptions = (allowOwner: boolean) => [
|
||||
...(allowOwner ? [{ value: "owner", label: t.workspace?.roles?.owner || "Owner" }] : []),
|
||||
{ value: "admin", label: t.workspace?.roles?.admin || "Admin" },
|
||||
const isOwner = myRole === "owner";
|
||||
|
||||
const roleOptions = (allowOwnerRole: boolean, allowAdminRole: boolean) => [
|
||||
...(allowOwnerRole ? [{ value: "owner", label: t.workspace?.roles?.owner || "Owner" }] : []),
|
||||
...(allowAdminRole ? [{ value: "admin", label: t.workspace?.roles?.admin || "Admin" }] : []),
|
||||
{ value: "member", label: t.workspace?.roles?.member || "Member" },
|
||||
{ value: "guest", label: t.workspace?.roles?.guest || "Guest" },
|
||||
];
|
||||
@@ -386,13 +387,13 @@ export default function EditWorkspace() {
|
||||
|
||||
<div className="flex items-center gap-2 w-full sm:w-auto mt-2 sm:mt-0">
|
||||
<Select
|
||||
value={newMemberRole}
|
||||
onChange={(val) => setNewMemberRole(val as any)}
|
||||
options={[
|
||||
...roleOptions(isFirstOwner),
|
||||
value={newMemberRole}
|
||||
onChange={(val) => setNewMemberRole(val as any)}
|
||||
options={[
|
||||
...roleOptions(isFirstOwner, isOwner),
|
||||
]}
|
||||
className="flex-1 sm:flex-none"
|
||||
buttonClassName="w-full sm:w-[110px] px-3 py-1.5 text-sm"
|
||||
className="flex-1 sm:flex-none"
|
||||
buttonClassName="w-full sm:w-[110px] px-3 py-1.5 text-sm"
|
||||
/>
|
||||
|
||||
<Button
|
||||
@@ -456,7 +457,7 @@ export default function EditWorkspace() {
|
||||
<Select
|
||||
value={m.role}
|
||||
onChange={(val) => handleChangeRole(m.id, val)}
|
||||
options={roleOptions(isFirstOwner)}
|
||||
options={roleOptions(isFirstOwner, isOwner)}
|
||||
buttonClassName="w-[110px] px-3 py-1.5 text-sm"
|
||||
/>
|
||||
) : (
|
||||
|
||||
Reference in New Issue
Block a user