diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts index 3de1026f70..6cd9ec228d 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts @@ -77,6 +77,26 @@ class UmbUserMockDB extends UmbEntityMockDbBase { return mfaLoginProviders; } + enableMfaProvider(providerName: string) { + const provider = mfaLoginProviders.find((x) => x.providerName === providerName); + if (provider) { + provider.isEnabledOnUser = true; + return true; + } + + return false; + } + + disableMfaProvider(providerName: string) { + const provider = mfaLoginProviders.find((x) => x.providerName === providerName); + if (provider) { + provider.isEnabledOnUser = false; + return true; + } + + return false; + } + /** * Disable users * @param {Array} ids diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts index 2bf1f9441a..4ab1ee22b7 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/user/current.handlers.ts @@ -12,4 +12,24 @@ export const handlers = [ const mfaLoginProviders = umbUserMockDb.getMfaLoginProviders(); return res(ctx.status(200), ctx.json(mfaLoginProviders)); }), + rest.post<{ code: string; secret: string }>( + umbracoPath(`${UMB_SLUG}/current/2fa/:providerName`), + async (req, res, ctx) => { + const body = await req.json(); + if (!req.params.providerName || !body.code || !body.secret) { + return res(ctx.status(400)); + } + + const result = umbUserMockDb.enableMfaProvider(req.params.providerName.toString()); + return res(ctx.status(result ? 200 : 404)); + }, + ), + rest.delete<{ code: string }>(umbracoPath(`${UMB_SLUG}/current/2fa/:providerName`), (req, res, ctx) => { + if (!req.params.providerName) { + return res(ctx.status(400)); + } + + const result = umbUserMockDb.disableMfaProvider(req.params.providerName.toString()); + return res(ctx.status(result ? 200 : 404)); + }), ];