This commit is contained in:
Mike Cao 2023-03-10 18:45:51 -08:00
commit 9a3e8921a7
7 changed files with 150 additions and 21 deletions

View file

@ -3,7 +3,7 @@ import cache from 'lib/cache';
import { PERMISSIONS, ROLE_PERMISSIONS, SHARE_TOKEN_HEADER } from 'lib/constants';
import { secret } from 'lib/crypto';
import { ensureArray, parseSecureToken, parseToken } from 'next-basics';
import { getTeamUser } from 'queries';
import { getTeamUser, getTeamUserById } from 'queries';
import { getTeamWebsite, getTeamWebsiteByTeamMemberId } from 'queries/admin/teamWebsite';
import { validate } from 'uuid';
import { Auth } from './types';
@ -167,6 +167,22 @@ export async function canDeleteTeam({ user }: Auth, teamId: string) {
return false;
}
export async function canDeleteTeamUser({ user }: Auth, teamUserId: string) {
if (user.isAdmin) {
return true;
}
if (validate(teamUserId)) {
const removeUser = await getTeamUserById(teamUserId);
const teamUser = await getTeamUser(removeUser.teamId, user.id);
return hasPermission(teamUser.role, PERMISSIONS.teamUpdate);
}
return false;
}
export async function canDeleteTeamWebsite({ user }: Auth, teamWebsiteId: string) {
if (user.isAdmin) {
return true;