Files
dify/web/models/access-control.ts

35 lines
865 B
TypeScript

export const SubjectType = {
GROUP: 'group',
ACCOUNT: 'account',
} as const
export type SubjectType = typeof SubjectType[keyof typeof SubjectType]
export const AccessMode = {
PUBLIC: 'public',
SPECIFIC_GROUPS_MEMBERS: 'private',
ORGANIZATION: 'private_all',
EXTERNAL_MEMBERS: 'sso_verified',
} as const
export type AccessMode = typeof AccessMode[keyof typeof AccessMode]
export type AccessControlGroup = {
id: string
name: string
groupSize: number
}
export type AccessControlAccount = {
id: string
name: string
email: string
avatar: string
avatarUrl: string
}
export type SubjectGroup = { subjectId: string, subjectType: SubjectType, groupData: AccessControlGroup }
export type SubjectAccount = { subjectId: string, subjectType: SubjectType, accountData: AccessControlAccount }
export type Subject = SubjectGroup | SubjectAccount