feat: add global auth settings and pending users

This commit is contained in:
2026-07-02 06:27:32 -07:00
parent f6b7924d0c
commit 4bb4312b08
24 changed files with 2831 additions and 23 deletions

View File

@@ -46,6 +46,7 @@ function toOrganization(row: typeof organizations.$inferSelect): Organization {
oidcHasClientSecret: row.oidcClientSecret.length > 0,
oidcScopes: row.oidcScopes,
oidcRedirectUri: row.oidcRedirectUri,
oidcAvatarClaim: row.oidcAvatarClaim,
oidcAutoProvision: row.oidcAutoProvision,
createdAt: row.createdAt.toISOString(),
updatedAt: row.updatedAt.toISOString(),
@@ -70,6 +71,8 @@ export async function PATCH(request: Request, context: RouteContext): Promise<Re
}
const name = readString(body, "name");
const avatarUrl = readString(body, "avatarUrl");
const hasAvatarUrl = "avatarUrl" in body;
const status = "status" in body ? readStatus(body.status) : null;
const roleId = readString(body, "roleId");
const requestedOrganizationId = readString(body, "organizationId");
@@ -79,7 +82,7 @@ export async function PATCH(request: Request, context: RouteContext): Promise<Re
return jsonFailure("账号状态无效");
}
if (!name && !status && !roleId) {
if (!name && !hasAvatarUrl && !status && !roleId) {
return jsonFailure("请至少填写一个要更新的字段");
}
@@ -113,9 +116,10 @@ export async function PATCH(request: Request, context: RouteContext): Promise<Re
try {
await database.transaction(async (transaction) => {
if (name || status) {
if (name || hasAvatarUrl || status) {
const updateValues: {
name?: string;
avatarUrl?: string;
status?: AccountStatus;
updatedAt: Date;
} = {
@@ -124,6 +128,9 @@ export async function PATCH(request: Request, context: RouteContext): Promise<Re
if (name) {
updateValues.name = name;
}
if (hasAvatarUrl) {
updateValues.avatarUrl = avatarUrl;
}
if (status) {
updateValues.status = status;
}