Skip to content

Commit

Permalink
Merge pull request #35 from bcgov/dev
Browse files Browse the repository at this point in the history
chore: new access request notification
  • Loading branch information
ychung-mot authored Mar 25, 2024
2 parents 397bb99 + 8e77234 commit aab19c6
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 0 deletions.
10 changes: 10 additions & 0 deletions server/StrDss.Data/Repositories/UserRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public interface IUserRepository
Task UpdateUserAsync(UserDto dto);
Task DenyAccessRequest(AccessRequestDenyDto dto);
Task ApproveAccessRequest(AccessRequestApproveDto dto, string role);
Task<List<UserDto>> GetAdminUsers();
}
public class UserRepository : RepositoryBase<DssUserIdentity>, IUserRepository
{
Expand Down Expand Up @@ -104,5 +105,14 @@ public async Task ApproveAccessRequest(AccessRequestApproveDto dto, string role)
var roleEntity = await _dbContext.DssUserRoles.FirstAsync(x => x.UserRoleCd == role);
entity.UserRoleCds.Add(roleEntity);
}

public async Task<List<UserDto>> GetAdminUsers()
{
var adminUsers = await _dbContext.DssUserRoles
.Where(x => x.UserRoleCd == Roles.CeuAdmin)
.SelectMany(x => x.UserIdentities).ToListAsync();

return _mapper.Map<List<UserDto>>(adminUsers);
}
}
}
18 changes: 18 additions & 0 deletions server/StrDss.Service/EmailTemplates/NewAccessRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
namespace StrDss.Service.EmailTemplates
{
public class NewAccessRequest : EmailTemplateBase
{
public NewAccessRequest(IEmailMessageService emailService)
: base(emailService)
{
}
public string Link { get; set; } = "";
public override string GetContent()
{
Subject = "STR Data Portal - New Access Request";

return
$@"New access request has been raised and requires review. {Link}";
}
}
}
16 changes: 16 additions & 0 deletions server/StrDss.Service/UserService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,22 @@ public async Task<Dictionary<string, List<string>>> CreateAccessRequestAsync(Acc

_unitOfWork.Commit();

var adminUsers = await _userRepo.GetAdminUsers();

if (adminUsers.Count > 0)
{
var emails = adminUsers.Select(x => x.EmailAddressDsc);

var template = new NewAccessRequest(_emailService)
{
Link = GetHostUrl(),
To = emails,
Info = $"New Access Request email for {_currentUser.DisplayName}"
};

await template.SendEmail();
}

return errors;
}

Expand Down

0 comments on commit aab19c6

Please sign in to comment.