refactor(core): use workspace role query instead of isOwner query (#12118)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **Refactor**
  - Updated workspace permission handling to use a unified role field within workspace data instead of separate admin and owner flags.
  - Permission checks now rely on the workspace role for determining admin and owner status.
- **Chores**
  - Removed deprecated queries and types related to admin and owner status.
  - Cleaned up internal logic and variable naming for improved consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
JimmFly
2025-05-13 03:21:22 +00:00
parent 662614de0d
commit cfe7b7cf29
8 changed files with 13 additions and 62 deletions

View File

@@ -1,3 +1,4 @@
import { Permission } from '@affine/graphql';
import {
backoffRetry,
effect,
@@ -43,8 +44,8 @@ export class WorkspacePermission extends Entity {
);
return {
isOwner: info.isOwner,
isAdmin: info.isAdmin,
isOwner: info.workspace.role === Permission.Owner,
isAdmin: info.workspace.role === Permission.Admin,
isTeam: info.workspace.team,
};
} else {

View File

@@ -4,6 +4,7 @@ import {
deleteWorkspaceMutation,
getWorkspaceInfoQuery,
getWorkspacesQuery,
Permission,
ServerDeploymentType,
} from '@affine/graphql';
import type {
@@ -339,8 +340,8 @@ class CloudWorkspaceFlavourProvider implements WorkspaceFlavourProvider {
if (!cloudData && !localData) {
return {
isOwner: info.isOwner,
isAdmin: info.isAdmin,
isOwner: info.workspace.role === Permission.Owner,
isAdmin: info.workspace.role === Permission.Admin,
isTeam: info.workspace.team,
};
}
@@ -355,8 +356,8 @@ class CloudWorkspaceFlavourProvider implements WorkspaceFlavourProvider {
return {
name: result.name,
avatar: result.avatar,
isOwner: info.isOwner,
isAdmin: info.isAdmin,
isOwner: info.workspace.role === Permission.Owner,
isAdmin: info.workspace.role === Permission.Admin,
isTeam: info.workspace.team,
};
}