diff --git a/src/backend/src/CoreModule.js b/src/backend/src/CoreModule.js index c9e16441f..afb67a30c 100644 --- a/src/backend/src/CoreModule.js +++ b/src/backend/src/CoreModule.js @@ -367,6 +367,9 @@ const install = async ({ services, app, useapi, modapi }) => { const { ReferralCodeService } = require('./services/ReferralCodeService'); services.registerService('referral-code', ReferralCodeService); + + const { VerifiedGroupService } = require('./services/VerifiedGroupService'); + services.registerService('__verified-group', VerifiedGroupService); const { UserService } = require('./services/UserService'); services.registerService('user', UserService); diff --git a/src/backend/src/services/VerifiedGroupService.js b/src/backend/src/services/VerifiedGroupService.js new file mode 100644 index 000000000..f0ecfd378 --- /dev/null +++ b/src/backend/src/services/VerifiedGroupService.js @@ -0,0 +1,28 @@ +const { get_user } = require("../helpers"); +const BaseService = require("./BaseService"); + +class VerifiedGroupService extends BaseService { + async _init () { + const config = this.global_config; + + const svc_event = this.services.get('event'); + svc_event.on('user.email-confirmed', async (_, { user_uid }) => { + const user = await get_user({ uuid: user_uid }); + + // Update group + const svc_group = this.services.get('group'); + await svc_group.remove_users({ + uid: config.default_temp_group, + users: [user.username], + }); + await svc_group.add_users({ + uid: config.default_user_group, + users: [user.username] + }); + }); + } +} + +module.exports = { + VerifiedGroupService, +};