Exemple #1
0
        public async Task <UserOutput> Execute(ClaimsPrincipal RequestUser, string id, string userName, string password, int jobId, int sectorId, int plantId, string name, string surname, List <string> roles, string address, string phoneNumber, string Base64Profile, bool active)
        {
            var identity = (ClaimsIdentity)RequestUser.Identity;

            var    claims        = (List <System.Security.Claims.Claim>)identity.Claims;
            string idRequestUser = claims.Find(i => i.Type == "id").Value;

            bool canEdit     = false;
            var  permissions = claims.FindAll(i => i.Type == "module/permission" && (i.Value == UserClaim.EditUser || i.Value == UserClaim.ActivateUser || i.Value == UserClaim.DeactivateUser));

            if (permissions.Count >= 3)
            {
                canEdit = true;
            }

            if (idRequestUser == id || canEdit)
            {
                var userToUpdate = new Domain.Users.User(id, userName, password, jobId, sectorId, plantId, name, surname, address, phoneNumber, Base64Profile, active);
                var userUpdated  = await _userRepository.Update(userToUpdate, roles);

                return(_mapper.Map <Domain.Users.User, UserOutput>(userUpdated));
            }
            else
            {
                throw new UnauthorizedException(userName, "No tiene permisos para editar");
            }
        }
Exemple #2
0
        public async Task <IActionResult> Register([FromBody] UserRegistrationDto data)
        {
            if (ModelState.IsValid)
            {
                var user = new Domain.Users.User
                {
                    UserName        = data.Email,
                    Email           = data.Email,
                    FirstName       = data.FirstName,
                    LastName        = data.LastName,
                    FacilityId      = data.FacilityId,
                    DoctorId        = data.DoctorId,
                    DateOfBirthsday = data.DateOfBirthsday,
                    Role            = data.Role
                };

                var result = await _userManager.CreateAsync(user, data.Password);

                if (result.Succeeded)
                {
                    return(Json(JsonResultData.Success()));
                }
            }

            return(Json(JsonResultData.Error("User already exists.")));
        }
        public async void ExecuteWithCorrectUserTest()
        {
            //Arrange
            Domain.Users.User usRet = new Domain.Users.User("hola", "password", true)
            {
                Id = "id"
            };

            var mockUserRepository = new Mock <IUserRepository>();
            var mockJwtService     = new Mock <IJwtService>();
            var mockStorage        = new Mock <IStorage>();
            var mockUserService    = new Mock <IUserService>();


            mockUserRepository.Setup(b => b.CheckUser(It.IsAny <Domain.Users.User>())).ReturnsAsync(usRet);
            mockJwtService.Setup(b => b.GenerateJWT("hola", "id", 1, 1, 1)).Returns(Task.FromResult("jwt"));

            LoginUserUseCase useCase = new LoginUserUseCase(mockUserRepository.Object, mockJwtService.Object, mockUserService.Object, mockStorage.Object);

            //Act
            var result = await useCase.Execute("hola", "password");

            //Assert
            Assert.IsType <UserOutput>(result);
        }
Exemple #4
0
        public async Task UpdatePassword(Domain.Users.User user, string newPassword)
        {
            var managementApiClient = await tokenGenerator.GetManagementApiClient();

            await managementApiClient.Users.UpdateAsync(user.Auth0Id, new UserUpdateRequest()
            {
                Password   = newPassword,
                Connection = Config.Connection
            });
        }
Exemple #5
0
        public async Task <UserOutput> Execute(string userName, string password, int jobId, int sectorId, int plantId, string name, string surname, List <string> roles, bool active)
        {
            if (await _userRepository.CheckUsernameExists(userName))
            {
                throw new DuplicateEntityException(userName, "Ya existe un usuario con ese nombre");
            }
            var userToCreate = new Domain.Users.User(userName, password, jobId, sectorId, plantId, name, surname, active);
            var userCreated  = await _userRepository.Add(userToCreate, roles);

            return(_mapper.Map <Domain.Users.User, UserOutput>(userCreated));
        }
Exemple #6
0
        public async Task <Domain.Users.User> Save(Domain.Users.User user)
        {
            if (user == null)
            {
                return(null);
            }

            var dbUser = user.ToDalOrNull(UserConverter.ToDalNew);

            await _users.InsertOneAsync(dbUser).ConfigureAwait(false);

            return(user);
        }
        public void Handle(UserCreateInputData inputData)
        {
            var username      = inputData.UserName;
            var duplicateUser = userRepository.FindByUserName(username);

            if (duplicateUser != null)
            {
                throw new Exception("duplicated");
            }

            var user = new Domain.Users.User(username);

            userRepository.Save(user);

            var outputData = new UserCreateOutputData(user.Id, DateTime.Now);

            presenter.Complete(outputData);
        }
Exemple #8
0
        public DisplayUserViewModel(Domain.Users.User user, IEncryptor encryptor)
        {
            UserId       = user.Id;
            Email        = user.Email;
            DisplayName  = user.DisplayName;
            Roles        = string.Join(", ", user.Roles);
            IsActive     = user.IsActive;
            GravatarHash = encryptor.Md5Encrypt(Email).Trim().ToLower();

            AllRoles =
                (
                    from object role in Enum.GetValues(typeof(Domain.Users.Role))
                    select new RoleViewModel {
                RoleId = (int)role, RoleName = role.ToString(), IsSelected = user.IsInRole(role.ToString())
            }
                )
                .ToList();
        }
Exemple #9
0
        public async Task <Domain.Users.User> Update(Domain.Users.User user)
        {
            if (user == null)
            {
                return(null);
            }

            var dbUser = user.ToDalOrNull(UserConverter.ToDal);

            var filter = Builders <DbEntities.User> .Filter.Where(u => u.Id == user.Id);

            var update = Builders <DbEntities.User> .Update
                         .Set(u => u.Phone.Value, user.Phone.Value)
                         .Set(u => u.Phone.Confirmed, user.Phone.Confirmed)
                         .Set(u => u.UserFullName, user.UserFullName)
                         .Set(u => u.Address.Zip, user.Address.Zip)
                         .Set(u => u.Address.City, user.Address.City)
                         .Set(u => u.Address.Street, user.Address.Street)
                         .Set(u => u.Address.CountryCode, user.Address.CountryCode);

            await _users.UpdateOneAsync(filter, update).ConfigureAwait(false);

            return(user);
        }
Exemple #10
0
 public UserOutput(Domain.Users.User user)
 {
     UserId          = user.Id;
     Name            = user.Name;
     AssociatedTodos = user.AssignedTodo;
 }