chore: add forwarder address for users

This commit is contained in:
mahyargdz
2025-07-15 16:31:58 +03:30
parent 63ddd394c9
commit 81a3f583a7
5 changed files with 43 additions and 6 deletions
+12 -2
View File
@@ -71,6 +71,7 @@ export class UsersService {
remainingInGB: Math.round(Number(user.emailQuota - user.emailQuotaUsed) / (1024 * 1024 * 1024)),
usagePercentage: Math.round((Number(user.emailQuotaUsed) / Number(user.emailQuota)) * 100),
},
forwarders: user.forwarders || [],
};
}
/*******************************/
@@ -83,7 +84,7 @@ export class UsersService {
/*******************************/
async createEmailUser(createEmailUserDto: CreateEmailUserDto, businessId: string) {
const { username, password, domainId, displayName, quota, aliases, title, templateId } = createEmailUserDto;
const { username, password, domainId, displayName, quota, aliases, title, templateId, forwarders } = createEmailUserDto;
const business = await this.em.findOne(Business, { id: businessId });
if (!business) throw new BadRequestException(BusinessMessage.NOT_FOUND);
@@ -122,6 +123,7 @@ export class UsersService {
address: emailAddress,
name: displayName || username,
quota: userQuota,
targets: forwarders || [],
}),
);
@@ -140,6 +142,7 @@ export class UsersService {
business,
domain,
role: userRole,
forwarders: forwarders || [],
});
// Update business quota after successful user creation
@@ -189,6 +192,7 @@ export class UsersService {
emailQuota: user.emailQuota!,
emailEnabled: user.emailEnabled,
domain: domain.name,
forwarders: user.forwarders || [],
createdAt: user.createdAt,
isActive: user.isActive,
},
@@ -245,7 +249,7 @@ export class UsersService {
/*******************************/
async updateEmailUser(userId: string, businessId: string, updateEmailUserDto: UpdateEmailUserDto) {
const { password, displayName, quota, aliases, title, templateId } = updateEmailUserDto;
const { password, displayName, quota, aliases, title, templateId, forwarders } = updateEmailUserDto;
const user = await this.userRepository.findOne(
{
@@ -283,6 +287,11 @@ export class UsersService {
if (quota) updateData.quota = quota;
if (forwarders !== undefined) {
updateData.forward = forwarders;
user.forwarders = forwarders;
}
if (Object.keys(updateData).length > 0) {
await firstValueFrom(this.mailServerService.users.updateUser(user.wildduckUserId!, updateData));
}
@@ -347,6 +356,7 @@ export class UsersService {
title: user.title,
emailQuota: user.emailQuota!,
emailEnabled: user.emailEnabled,
forwarders: user.forwarders || [],
isActive: user.isActive,
updatedAt: user.updatedAt,
},