Esempio n. 1
0
        public async Task <IActionResult> AcceptInvite(Guid token, string email)
        {
            if (email.IsNotEmail() ||
                token.IsEmptyGuid())
            {
                return(RedirectToAccessDenied());
            }

            var request  = new AdminInviteValidateRequest(token, email);
            var response = await _adminService.ValidateSuperAdminUserInvitation(request);

            if (response.Status.IsNotSuccess)
            {
                return(RedirectToAccessDenied());
            }

            var model = AdminMapper.MapAdminAcceptInviteModel(response.Item, token, email);

            return(View(model));
        }
Esempio n. 2
0
        public async Task <AdminInviteValidateResponse> ValidateSuperAdminUserInvitation(AdminInviteValidateRequest request)
        {
            var response = new AdminInviteValidateResponse();

            var user = await _userRepository.Select(x => x.InvitationToken == request.Token && x.Email == request.Email);

            if (user.IsNotExist())
            {
                response.SetInvalidBecauseNotFound("user");
                return(response);
            }

            if (await _organizationRepository.Any(x => x.Id == user.OrganizationId && !x.IsActive))
            {
                response.SetInvalidBecauseNotFound("organization");
                return(response);
            }

            if (user.InvitedAt.HasValue &&
                user.InvitedAt.Value.AddDays(2) > DateTime.UtcNow)
            {
                response.Item.FirstName = user.FirstName;
                response.Item.LastName  = user.LastName;
                response.Item.Email     = user.Email;
                response.Status         = ResponseStatus.Success;
                return(response);
            }

            response.SetFailed();
            return(response);
        }
        public static AdminInviteValidateRequest GetAdminInviteValidateRequest()
        {
            var request = new AdminInviteValidateRequest(UidOne, EmailOne);

            return(request);
        }