mirror of
https://github.com/saltbo/zpan.git
synced 2026-08-30 17:50:07 +08:00
364cbc2aee
Enforce signup gating via auth_signup_mode system option (open/invite_only/closed). Invite codes are atomically redeemed during signup. Email verification is conditionally enabled when an email provider is configured. Agent-Profile: https://agent-kanban.dev/agents/a6bb038c4226a87f Co-authored-by: Bob <aibob@mails.agent-kanban.dev> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
45 lines
968 B
TypeScript
45 lines
968 B
TypeScript
export const StorageMode = {
|
|
PRIVATE: 'private',
|
|
PUBLIC: 'public',
|
|
} as const
|
|
|
|
export type StorageMode = (typeof StorageMode)[keyof typeof StorageMode]
|
|
|
|
export const UserRole = {
|
|
ADMIN: 'admin',
|
|
MEMBER: 'member',
|
|
} as const
|
|
|
|
export type UserRole = (typeof UserRole)[keyof typeof UserRole]
|
|
|
|
export const DirType = {
|
|
FILE: 0,
|
|
USER_FOLDER: 1,
|
|
SYSTEM_FOLDER: 2,
|
|
} as const
|
|
|
|
export type DirType = (typeof DirType)[keyof typeof DirType]
|
|
|
|
export const StorageStatus = {
|
|
ACTIVE: 'active',
|
|
INACTIVE: 'inactive',
|
|
} as const
|
|
|
|
export type StorageStatus = (typeof StorageStatus)[keyof typeof StorageStatus]
|
|
|
|
export const ObjectStatus = {
|
|
DRAFT: 'draft',
|
|
ACTIVE: 'active',
|
|
TRASHED: 'trashed',
|
|
} as const
|
|
|
|
export type ObjectStatus = (typeof ObjectStatus)[keyof typeof ObjectStatus]
|
|
|
|
export const SignupMode = {
|
|
OPEN: 'open',
|
|
INVITE_ONLY: 'invite_only',
|
|
CLOSED: 'closed',
|
|
} as const
|
|
|
|
export type SignupMode = (typeof SignupMode)[keyof typeof SignupMode]
|