diff --git a/src/main/ipc/settings-handler.ts b/src/main/ipc/settings-handler.ts index 41480ef..a304ca0 100644 --- a/src/main/ipc/settings-handler.ts +++ b/src/main/ipc/settings-handler.ts @@ -28,7 +28,13 @@ export function registerSettingsHandlers(): void { ipcMain.handle(IPC_CHANNELS.SETTINGS_GET_USER_TYPE, async (): Promise> => { return withErrorHandling( - async () => (sessionManager.getUserType() as UserType) || 'Guest', + async () => { + const userType = sessionManager.getUserType() + if (!userType) { + throw new ValidationError('未找到用户类型', 'VAL_INVALID_INPUT') + } + return userType as UserType + }, 'settings:getUserType' ) }) diff --git a/src/main/schemas/auth.schema.ts b/src/main/schemas/auth.schema.ts index b626c57..fa0057d 100644 --- a/src/main/schemas/auth.schema.ts +++ b/src/main/schemas/auth.schema.ts @@ -20,7 +20,7 @@ export type LoginRequestZod = z.infer export const UserInfoSchema = z.object({ id: z.number().int().positive(), username: z.string().min(1), - userType: z.enum(['Admin', 'User', 'Guest']), + userType: z.enum(['Admin', 'User']), computerName: z.string().optional() }) diff --git a/src/main/services/update/update-catalog-service.ts b/src/main/services/update/update-catalog-service.ts index 1e310c0..3e7fd94 100644 --- a/src/main/services/update/update-catalog-service.ts +++ b/src/main/services/update/update-catalog-service.ts @@ -29,7 +29,7 @@ export class UpdateCatalogService { public getDialogCatalog(status: UpdateStatus, catalog: UpdateCatalog): UpdateDialogCatalog { const currentUserType = status.currentUserType - if (!status.enabled || !currentUserType || currentUserType === 'Guest') { + if (!status.enabled || !currentUserType) { return { mode: 'disabled' } } diff --git a/src/main/services/update/update-service.ts b/src/main/services/update/update-service.ts index fb775a8..4bee8b5 100644 --- a/src/main/services/update/update-service.ts +++ b/src/main/services/update/update-service.ts @@ -106,7 +106,7 @@ export class UpdateService { this.ensureInitialized() this.status.currentUserType = userType - if (!this.status.enabled || !userType || userType === 'Guest') { + if (!this.status.enabled || !userType) { this.clearPolling() this.catalog = { stable: [], preview: [] } this.publishStatus({ diff --git a/src/main/services/user/bip-users-dao.ts b/src/main/services/user/bip-users-dao.ts index 9f878f9..8d8f4f2 100644 --- a/src/main/services/user/bip-users-dao.ts +++ b/src/main/services/user/bip-users-dao.ts @@ -139,7 +139,7 @@ export class BIPUsersDAO { return { id: row.ID as number, username: row.UserName as string, - userType: row.UserType as 'Admin' | 'User' | 'Guest' + userType: row.UserType as 'Admin' | 'User' } } return null @@ -157,7 +157,7 @@ export class BIPUsersDAO { return { id: row.ID as number, username: row.UserName as string, - userType: row.UserType as 'Admin' | 'User' | 'Guest' + userType: row.UserType as 'Admin' | 'User' } } return null @@ -198,7 +198,7 @@ export class BIPUsersDAO { return { id: row.ID as number, username: row.UserName as string, - userType: row.UserType as 'Admin' | 'User' | 'Guest' + userType: row.UserType as 'Admin' | 'User' } } return null @@ -216,7 +216,7 @@ export class BIPUsersDAO { return { id: row.ID as number, username: row.UserName as string, - userType: row.UserType as 'Admin' | 'User' | 'Guest' + userType: row.UserType as 'Admin' | 'User' } } return null @@ -254,7 +254,7 @@ export class BIPUsersDAO { return result.rows.map((row) => ({ id: row.ID as number, username: row.UserName as string, - userType: row.UserType as 'Admin' | 'User' | 'Guest', + userType: row.UserType as 'Admin' | 'User', createTime: row.CreateTime as Date | undefined })) } catch (error) { @@ -270,7 +270,7 @@ export class BIPUsersDAO { * Create a new user * @param username - The username (must be unique) * @param password - The password - * @param userType - User type ('Admin', 'User', or 'Guest') + * @param userType - User type ('Admin' or 'User') * @param computerName - Optional computer name for silent login * @returns True if successful */ diff --git a/src/main/services/user/session-manager.ts b/src/main/services/user/session-manager.ts index aba523b..9f3f38c 100644 --- a/src/main/services/user/session-manager.ts +++ b/src/main/services/user/session-manager.ts @@ -126,13 +126,6 @@ export class SessionManager { return this.currentUser?.userType === 'Admin' } - /** - * Check if the current user is a guest - */ - public isGuest(): boolean { - return this.currentUser?.userType === 'Guest' - } - /** * Get the current username */ diff --git a/src/main/types/settings.types.ts b/src/main/types/settings.types.ts index f27642e..0f75e8f 100644 --- a/src/main/types/settings.types.ts +++ b/src/main/types/settings.types.ts @@ -10,7 +10,7 @@ /** * User type for settings permission control */ -export type UserType = 'Admin' | 'User' | 'Guest' +export type UserType = 'Admin' | 'User' /** * Database type selection diff --git a/src/main/types/user.types.ts b/src/main/types/user.types.ts index 23cb6fa..977cd91 100644 --- a/src/main/types/user.types.ts +++ b/src/main/types/user.types.ts @@ -5,7 +5,7 @@ /** * User type enumeration */ -export type UserType = 'Admin' | 'User' | 'Guest' +export type UserType = 'Admin' | 'User' /** * User information interface diff --git a/src/renderer/src/components/UserSelectionDialog.tsx b/src/renderer/src/components/UserSelectionDialog.tsx index 3f8db70..6b39da3 100644 --- a/src/renderer/src/components/UserSelectionDialog.tsx +++ b/src/renderer/src/components/UserSelectionDialog.tsx @@ -13,7 +13,7 @@ import { Modal } from './ui/Modal' export interface UserInfo { id: number username: string - userType: 'Admin' | 'User' | 'Guest' + userType: 'Admin' | 'User' createTime?: Date } @@ -61,8 +61,7 @@ export const UserSelectionDialog: React.FC = ({ const userTypeStyles: Record = { Admin: 'bg-amber-50 text-amber-600', - User: 'bg-blue-50 text-blue-600', - Guest: 'bg-gray-100 text-gray-600' + User: 'bg-blue-50 text-blue-600' } if (!isOpen) return null diff --git a/src/renderer/src/components/app/UnauthenticatedApp.tsx b/src/renderer/src/components/app/UnauthenticatedApp.tsx index 0a050ee..b1549e8 100644 --- a/src/renderer/src/components/app/UnauthenticatedApp.tsx +++ b/src/renderer/src/components/app/UnauthenticatedApp.tsx @@ -4,7 +4,7 @@ import UserSelectionDialog, { type UserInfo as SelectedUserInfo } from '../UserS interface CurrentUser { username: string - userType: 'Admin' | 'User' | 'Guest' + userType: 'Admin' | 'User' } interface UnauthenticatedAppProps { diff --git a/src/renderer/src/hooks/useAppBootstrap.ts b/src/renderer/src/hooks/useAppBootstrap.ts index 4ef9be3..173c572 100644 --- a/src/renderer/src/hooks/useAppBootstrap.ts +++ b/src/renderer/src/hooks/useAppBootstrap.ts @@ -17,7 +17,7 @@ export interface CurrentUser { export interface SelectedUserInfo { id: number username: string - userType: 'Admin' | 'User' | 'Guest' + userType: 'Admin' | 'User' computerName?: string } diff --git a/src/renderer/src/hooks/useAuth.ts b/src/renderer/src/hooks/useAuth.ts index 8e128c8..bfc3c1f 100644 --- a/src/renderer/src/hooks/useAuth.ts +++ b/src/renderer/src/hooks/useAuth.ts @@ -3,7 +3,7 @@ import { useState, useCallback } from 'react' interface UserInfo { id: number username: string - userType: 'Admin' | 'User' | 'Guest' + userType: 'Admin' | 'User' computerName?: string } diff --git a/src/renderer/src/stores/useUserStore.ts b/src/renderer/src/stores/useUserStore.ts index 08148a7..f3f52fd 100644 --- a/src/renderer/src/stores/useUserStore.ts +++ b/src/renderer/src/stores/useUserStore.ts @@ -10,7 +10,7 @@ import { create } from 'zustand' interface UserInfo { id: number username: string - userType: 'Admin' | 'User' | 'Guest' + userType: 'Admin' | 'User' computerName?: string }