{"version":3,"file":"user.repository-g4sALZdj.js","sources":["../../../src/packages/user/user/repository/sources/user-mfa.server.data-source.ts","../../../src/packages/user/user/repository/sources/user-set-group.server.data-source.ts","../../../src/packages/user/user/repository/user.repository.ts"],"sourcesContent":["import { UserService } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { tryExecute, tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';\r\n\r\n/**\r\n * A data source for User MFA items that fetches data from the server\r\n * @class UmbMfaServerDataSource\r\n */\r\nexport class UmbUserMfaServerDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbMfaServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbMfaServerDataSource\r\n\t */\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tthis.#host = host;\r\n\t}\r\n\r\n\t/**\r\n\t * Request the MFA providers for a user\r\n\t * @param unique The unique id of the user\r\n\t * @memberof UmbMfaServerDataSource\r\n\t */\r\n\trequestMfaProviders(unique: string) {\r\n\t\tif (!unique) throw new Error('User id is missing');\r\n\r\n\t\treturn tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tUserService.getUserById2Fa({\r\n\t\t\t\tid: unique,\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Disables a MFA provider for a user\r\n\t * @param unique The unique id of the user\r\n\t * @param providerName The name of the provider\r\n\t * @memberof UmbMfaServerDataSource\r\n\t */\r\n\tdisableMfaProvider(unique: string, providerName: string) {\r\n\t\tif (!unique) throw new Error('User id is missing');\r\n\t\tif (!providerName) throw new Error('Provider is missing');\r\n\r\n\t\treturn tryExecute(\r\n\t\t\tUserService.deleteUserById2FaByProviderName({\r\n\t\t\t\tid: unique,\r\n\t\t\t\tproviderName,\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n}\r\n","import { UserService } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';\r\n\r\n/**\r\n * A data source for Data Type items that fetches data from the server\r\n * @class UmbUserSetGroupsServerDataSource\r\n */\r\nexport class UmbUserSetGroupsServerDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbUserSetGroupsServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbUserSetGroupsServerDataSource\r\n\t */\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tthis.#host = host;\r\n\t}\r\n\r\n\t/**\r\n\t * Set groups for users\r\n\t * @param {Array} id\r\n\t * @param userIds\r\n\t * @param userGroupIds\r\n\t * @returns {*}\r\n\t * @memberof UmbUserSetGroupsServerDataSource\r\n\t */\r\n\tasync setGroups(userIds: string[], userGroupIds: string[]) {\r\n\t\tif (!userIds) throw new Error('User ids are missing');\r\n\t\tif (!userGroupIds) throw new Error('User group ids are missing');\r\n\r\n\t\treturn tryExecuteAndNotify(\r\n\t\t\tthis.#host,\r\n\t\t\tUserService.postUserSetUserGroups({\r\n\t\t\t\trequestBody: {\r\n\t\t\t\t\tuserIds: userIds.map((id) => ({ id })),\r\n\t\t\t\t\tuserGroupIds: userGroupIds.map((id) => ({ id })),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t);\r\n\t}\r\n}\r\n","import { UmbUserMfaServerDataSource } from './sources/user-mfa.server.data-source.js';\r\nimport { UmbUserSetGroupsServerDataSource } from './sources/user-set-group.server.data-source.js';\r\nimport { UmbUserRepositoryBase } from './user-repository-base.js';\r\nimport { of } from '@umbraco-cms/backoffice/external/rxjs';\r\nimport { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';\r\n\r\nexport class UmbUserRepository extends UmbUserRepositoryBase {\r\n\t#setUserGroupsSource = new UmbUserSetGroupsServerDataSource(this._host);\r\n\t#userMfaSource = new UmbUserMfaServerDataSource(this._host);\r\n\r\n\tasync setUserGroups(userIds: Array, userGroupIds: Array) {\r\n\t\tif (userGroupIds.length === 0) throw new Error('User group ids are missing');\r\n\t\tif (userIds.length === 0) throw new Error('User ids are missing');\r\n\r\n\t\tconst { error } = await this.#setUserGroupsSource.setGroups(userIds, userGroupIds);\r\n\r\n\t\tif (!error) {\r\n\t\t\t//TODO: Update relevant stores\r\n\t\t}\r\n\r\n\t\treturn { error };\r\n\t}\r\n\r\n\t/**\r\n\t * Request the MFA providers for a user\r\n\t * @param unique The unique id of the user\r\n\t * @memberof UmbUserRepository\r\n\t */\r\n\tasync requestMfaProviders(unique: string) {\r\n\t\tconst { data, error } = await this.#userMfaSource.requestMfaProviders(unique);\r\n\t\treturn { data, error, asObservable: () => of(data ?? []) };\r\n\t}\r\n\r\n\t/**\r\n\t * Disables a MFA provider for a user\r\n\t * @param unique The unique id of the user\r\n\t * @param providerName The name of the provider\r\n\t * @param displayName The display name of the provider to show in the notification (optional)\r\n\t * @memberof UmbUserRepository\r\n\t */\r\n\tasync disableMfaProvider(unique: string, providerName: string, displayName?: string) {\r\n\t\tconst { data, error } = await this.#userMfaSource.disableMfaProvider(unique, providerName);\r\n\r\n\t\tconst localize = new UmbLocalizationController(this._host);\r\n\r\n\t\tif (!error) {\r\n\t\t\tconst notification = {\r\n\t\t\t\tdata: { message: localize.term('user_2faProviderIsDisabledMsg', displayName ?? providerName) },\r\n\t\t\t};\r\n\t\t\tthis.notificationContext?.peek('positive', notification);\r\n\t\t} else {\r\n\t\t\tconsole.error('Failed to disable MFA provider', error);\r\n\t\t\tconst notification = {\r\n\t\t\t\tdata: { message: localize.term('user_2faProviderIsNotDisabledMsg', displayName ?? providerName) },\r\n\t\t\t};\r\n\t\t\tthis.notificationContext?.peek('warning', notification);\r\n\t\t}\r\n\r\n\t\treturn { data, error };\r\n\t}\r\n}\r\n"],"names":["UmbUserMfaServerDataSource","#host","host","unique","tryExecuteAndNotify","UserService","providerName","tryExecute","UmbUserSetGroupsServerDataSource","userIds","userGroupIds","id","UmbUserRepository","UmbUserRepositoryBase","#setUserGroupsSource","#userMfaSource","error","data","of","displayName","localize","UmbLocalizationController","notification"],"mappings":"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"}