UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

22 lines (21 loc) 1.14 kB
import { UserIntegrityCheckFlag } from '@directus/types'; import { validateRemainingAdminCount } from '../permissions/modules/validate-remaining-admin/validate-remaining-admin-count.js'; import { checkUserLimits } from '../telemetry/utils/check-user-limits.js'; import { shouldCheckUserLimits } from '../telemetry/utils/should-check-user-limits.js'; import { fetchUserCount } from './fetch-user-count/fetch-user-count.js'; export async function validateUserCountIntegrity(options) { const validateUserLimits = (options.flags & UserIntegrityCheckFlag.UserLimits) !== 0; const validateRemainingAdminUsers = (options.flags & UserIntegrityCheckFlag.RemainingAdmins) !== 0; const limitCheck = validateUserLimits && shouldCheckUserLimits(); if (!validateRemainingAdminUsers && !limitCheck) { return; } const adminOnly = validateRemainingAdminUsers && !limitCheck; const userCounts = await fetchUserCount({ ...options, adminOnly }); if (limitCheck) { await checkUserLimits(userCounts); } if (validateRemainingAdminUsers) { validateRemainingAdminCount(userCounts.admin); } }