Ejemplo n.º 1
0
        private void SendActivationEmail(UserDto user, ActivationDto activation)
        {
            var email = new EmailRabbitMq
            {
                EmailAddress  = user.Email,
                TemplateName  = "ActivateAccount",
                Subject       = "Activatie Eindhovense vriendjes",
                KeyWordValues = new List <EmailKeyWordValue>
                {
                    new EmailKeyWordValue
                    {
                        Key   = "Username",
                        Value = user.Username
                    },
                    new EmailKeyWordValue
                    {
                        Key   = "ActivationCode",
                        Value = activation.Code
                    }
                }
            };

            _publisher.Publish(new List <EmailRabbitMq> {
                email
            }, RabbitMqRouting.SendMail, RabbitMqExchange.MailExchange);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// The user has an possibility to login with multiple account roles if the account is admin or site admin
        /// This is implemented so that the user does not need multiple accounts for every functionality
        /// </summary>
        /// <param name="user">The user from the database</param>
        /// <returns>The login result</returns>
        private async Task <LoginResultViewmodel> HandleMultipleAccountRolesLogin(UserDto user)
        {
            var pendingLogin = new PendingLoginDto
            {
                UserUuid = user.Uuid
            };

            var userFromUserService = _rpcClient.Call <List <UserRabbitMqSensitiveInformation> >(new List <Guid>
            {
                user.Uuid
            }, RabbitMqQueues.FindUserQueue).FirstOrDefault();

            var email = new EmailRabbitMq
            {
                EmailAddress  = userFromUserService.Email,
                Subject       = "Login code",
                TemplateName  = "LoginMultiRole",
                KeyWordValues = new List <EmailKeyWordValue>
                {
                    new EmailKeyWordValue
                    {
                        Key   = "Username",
                        Value = user.Username
                    },
                    new EmailKeyWordValue
                    {
                        Key   = "LoginCode",
                        Value = pendingLogin.AccessCode.ToString()
                    }
                }
            };

            _publisher.Publish(new List <EmailRabbitMq> {
                email
            }, RabbitMqRouting.SendMail, RabbitMqExchange.MailExchange);

            await _pendingLoginDal.Remove(pendingLogin.UserUuid);

            await _pendingLoginDal.RemoveOutdated();

            await _pendingLoginDal.Add(pendingLogin);

            List <AccountRole> allAccountRoles = Enum.GetValues(typeof(AccountRole))
                                                 .Cast <AccountRole>()
                                                 .ToList();

            return(new LoginResultViewmodel
            {
                UserHasMultipleAccountRoles = true,
                SelectableAccountRoles = allAccountRoles
                                         .FindAll(aa => aa != AccountRole.Undefined && aa <= user.AccountRole)
            });
        }