@@ -46,14 +46,15 @@ totp.options = {
46
46
* @prop {(req: Req, res: Res) => Promise<void> } sendAuthCodeToUser
47
47
* @prop {(req: Req, res: Res) => Promise<boolean> } verifyAuthCodeForUser
48
48
* @prop {(req: Req, res: Res) => Promise<boolean> } isVerifiedSession
49
+ * @prop {() => boolean } isVerificationRequired
49
50
*/
50
51
51
52
/**
52
53
* @param {object } deps
53
54
* @param {(req: Req, res: Res) => Promise<Session> } deps.getSession
54
55
* @param {(data: {id: string}) => Promise<User> } deps.findUserById
55
56
* @param {(req: Req) => string } deps.getOriginOfRequest
56
- * @param {(key: string ) => string } deps.getSettingsCache
57
+ * @param {(key: 'require_email_mfa' | 'admin_session_secret' | 'title' ) => boolean | string } deps.getSettingsCache
57
58
* @param {() => string } deps.getBlogLogo
58
59
* @param {import('../../core/core/server/services/mail').GhostMailer } deps.mailer
59
60
* @param {import('../../core/core/shared/labs') } deps.labs
@@ -96,6 +97,15 @@ module.exports = function createSessionService({
96
97
}
97
98
}
98
99
100
+ /**
101
+ * isVerificationRequired
102
+ * Determines if 2FA verification is required based on site settings
103
+ * @returns {boolean }
104
+ */
105
+ function isVerificationRequired ( ) {
106
+ return getSettingsCache ( 'require_email_mfa' ) === true ;
107
+ }
108
+
99
109
/**
100
110
* createSessionForUser
101
111
*
@@ -261,7 +271,7 @@ module.exports = function createSessionService({
261
271
siteLogo : siteLogo ,
262
272
token : token ,
263
273
deviceDetails : await getDeviceDetails ( session . user_agent , session . ip ) ,
264
- is2FARequired : getSettingsCache ( 'require_email_mfa' )
274
+ is2FARequired : this . isVerificationRequired ( )
265
275
} ) ;
266
276
267
277
try {
@@ -310,8 +320,7 @@ module.exports = function createSessionService({
310
320
async function removeUserForSession ( req , res ) {
311
321
const session = await getSession ( req , res ) ;
312
322
313
- const requireMfa = getSettingsCache ( 'require_email_mfa' ) ;
314
- if ( requireMfa ) {
323
+ if ( this . isVerificationRequired ( ) ) {
315
324
session . verified = undefined ;
316
325
}
317
326
@@ -359,6 +368,7 @@ module.exports = function createSessionService({
359
368
isVerifiedSession,
360
369
sendAuthCodeToUser,
361
370
verifyAuthCodeForUser,
362
- generateAuthCodeForUser
371
+ generateAuthCodeForUser,
372
+ isVerificationRequired
363
373
} ;
364
374
} ;
0 commit comments