import { UserType } from '@fastgpt/global/support/user/type'; import { MongoUser } from './schema'; import { getTmbInfoByTmbId, getUserDefaultTeam } from './team/controller'; import { ERROR_ENUM } from '@fastgpt/global/common/error/errorCode'; export async function authUserExist({ userId, username }: { userId?: string; username?: string }) { if (userId) { return MongoUser.findOne({ _id: userId }); } if (username) { return MongoUser.findOne({ username }); } return null; } export async function getUserDetail({ tmbId, userId }: { tmbId?: string; userId?: string; }): Promise { const tmb = await (async () => { if (tmbId) { try { const result = await getTmbInfoByTmbId({ tmbId }); return result; } catch (error) {} } if (userId) { return getUserDefaultTeam({ userId }); } return Promise.reject(ERROR_ENUM.unAuthorization); })(); const user = await MongoUser.findById(tmb.userId); if (!user) { return Promise.reject(ERROR_ENUM.unAuthorization); } return { _id: user._id, username: user.username, avatar: user.avatar, timezone: user.timezone, promotionRate: user.promotionRate, team: tmb, notificationAccount: tmb.notificationAccount, permission: tmb.permission }; }