fix(core): adjust admin permission (#9204)

close AF-2001 AF-2002
This commit is contained in:
JimmFly
2024-12-20 02:26:17 +00:00
parent 0fdf2c4905
commit 7ff24e9c1c
7 changed files with 13 additions and 9 deletions

View File

@@ -69,6 +69,9 @@ export const ModalContent = ({
/> />
), ),
value: 'link', value: 'link',
style: {
cursor: 'not-allowed',
},
}, },
]} ]}
/> />

View File

@@ -62,6 +62,7 @@ export const CloudWorkspaceMembersPanel = ({
const permissionService = useService(WorkspacePermissionService); const permissionService = useService(WorkspacePermissionService);
const isOwner = useLiveData(permissionService.permission.isOwner$); const isOwner = useLiveData(permissionService.permission.isOwner$);
const isAdmin = useLiveData(permissionService.permission.isAdmin$); const isAdmin = useLiveData(permissionService.permission.isAdmin$);
const isOwnerOrAdmin = isOwner || isAdmin;
useEffect(() => { useEffect(() => {
permissionService.permission.revalidate(); permissionService.permission.revalidate();
}, [permissionService]); }, [permissionService]);
@@ -233,8 +234,8 @@ export const CloudWorkspaceMembersPanel = ({
return ( return (
<> <>
<SettingRow name={title} desc={desc} spreadCol={!!isOwner}> <SettingRow name={title} desc={desc} spreadCol={!!isOwnerOrAdmin}>
{isOwner ? ( {isOwnerOrAdmin ? (
<> <>
<Button onClick={openInviteModal}>{t['Invite Members']()}</Button> <Button onClick={openInviteModal}>{t['Invite Members']()}</Button>
{!isTeam ? ( {!isTeam ? (

View File

@@ -210,7 +210,7 @@ const MemberItem = ({
</div> </div>
<div <div
className={clsx(styles.roleOrStatus, { className={clsx(styles.roleOrStatus, {
pending: !member.accepted, pending: member.status !== WorkspaceMemberStatus.Accepted,
})} })}
> >
{t.t(memberStatus)} {t.t(memberStatus)}

View File

@@ -193,14 +193,17 @@ export const MemberOptions = ({
label: t['com.affine.payment.member.team.remove'](), label: t['com.affine.payment.member.team.remove'](),
onClick: handleRemove, onClick: handleRemove,
show: show:
(isAdmin || isOwner) && (isOwner && member.status === WorkspaceMemberStatus.Accepted) ||
member.status === WorkspaceMemberStatus.Accepted, (isAdmin &&
member.status === WorkspaceMemberStatus.Accepted &&
member.permission !== Permission.Owner &&
member.permission !== Permission.Admin),
}, },
{ {
label: t['com.affine.payment.member.team.change.collaborator'](), label: t['com.affine.payment.member.team.change.collaborator'](),
onClick: handleChangeToCollaborator, onClick: handleChangeToCollaborator,
show: show:
(isAdmin || isOwner) && isOwner &&
member.status === WorkspaceMemberStatus.Accepted && member.status === WorkspaceMemberStatus.Accepted &&
member.permission === Permission.Admin, member.permission === Permission.Admin,
}, },

View File

@@ -8,7 +8,6 @@ query getMembersByWorkspaceId($workspaceId: String!, $skip: Int!, $take: Int!) {
avatarUrl avatarUrl
permission permission
inviteId inviteId
accepted
emailVerified emailVerified
status status
} }

View File

@@ -469,7 +469,6 @@ query getMembersByWorkspaceId($workspaceId: String!, $skip: Int!, $take: Int!) {
avatarUrl avatarUrl
permission permission
inviteId inviteId
accepted
emailVerified emailVerified
status status
} }

View File

@@ -1844,7 +1844,6 @@ export type GetMembersByWorkspaceIdQuery = {
avatarUrl: string | null; avatarUrl: string | null;
permission: Permission; permission: Permission;
inviteId: string; inviteId: string;
accepted: boolean;
emailVerified: boolean | null; emailVerified: boolean | null;
status: WorkspaceMemberStatus; status: WorkspaceMemberStatus;
}>; }>;