mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
Some checks are pending
Test Master / install-and-build (push) Waiting to run
Test Master / Unit tests (18.x) (push) Blocked by required conditions
Test Master / Unit tests (20.x) (push) Blocked by required conditions
Test Master / Unit tests (22.4) (push) Blocked by required conditions
Test Master / Lint (push) Blocked by required conditions
Test Master / Notify Slack on failure (push) Blocked by required conditions
Benchmark Docker Image CI / build (push) Waiting to run
25 lines
738 B
TypeScript
25 lines
738 B
TypeScript
import Container from 'typedi';
|
|
|
|
import config from '@/config';
|
|
import { UserRepository } from '@/databases/repositories/user.repository';
|
|
|
|
import { MFA_FEATURE_ENABLED } from './constants';
|
|
|
|
export const isMfaFeatureEnabled = () => config.get(MFA_FEATURE_ENABLED);
|
|
|
|
const isMfaFeatureDisabled = () => !isMfaFeatureEnabled();
|
|
|
|
const getUsersWithMfaEnabled = async () =>
|
|
await Container.get(UserRepository).count({ where: { mfaEnabled: true } });
|
|
|
|
export const handleMfaDisable = async () => {
|
|
if (isMfaFeatureDisabled()) {
|
|
// check for users with MFA enabled, and if there are
|
|
// users, then keep the feature enabled
|
|
const users = await getUsersWithMfaEnabled();
|
|
if (users) {
|
|
config.set(MFA_FEATURE_ENABLED, true);
|
|
}
|
|
}
|
|
};
|