Ejemplo n.º 1
0
        public UserModel GetUserById(int userId, bool withRole = false)
        {
            var user  = _userRepository.GetById(userId);
            var model = user.ToModel();

            if (withRole)
            {
                _userRoleRepository.FetchRoles(model);
            }
            return(model);
        }
Ejemplo n.º 2
0
        public async Task <SignInResult> PasswordSignInAsync(string username, string password, string hostName)
        {
            var signInResult = await PasswordSignInAsync(username, password);

            if (signInResult.Success)
            {
                var user = signInResult.User;
                _userRoleRepository.FetchRoles(user);
                if (user.Roles.Any(x => x.CanBypassDomain()))
                {
                    return(signInResult);
                }
                if (string.IsNullOrEmpty(hostName))
                {
                    signInResult.Success = false;
                    signInResult.Message = Constants.Messages.INVALID_HOSTNAME;
                    return(signInResult);
                }
                var host = await _hostDefinitionRepository.FindByNameAsync(hostName);

                if (host == null || host.Organization == null)
                {
                    signInResult.Success = false;
                    signInResult.Message = Constants.Messages.INVALID_HOSTNAME;
                    return(signInResult);
                }
                var userBelongToOrg = await _organizationUserRepository.UserIsInOrganizationAsync(user.ID, host.Organization.ID);

                if (!userBelongToOrg)
                {
                    signInResult.Success = false;
                    signInResult.Message = Constants.Messages.INVALID_HOSTNAME;
                    return(signInResult);
                }
            }
            return(signInResult);
        }