Ejemplo n.º 1
0
        public void CreateAccount(DTO.UserDTO user)
        {
            var obj = AutoMapper.Mapper.Map <DigitalCultivationMart.DAL.Entities.User>(user);

            IsAccountExists(user.UserName, user.Password);
            urepo.AddUser(obj);
        }
Ejemplo n.º 2
0
 public DTO.UserDTO Delete(DTO.UserDTO item)
 {
     DAL.Context.User entity = repository.Get(item.UserId);
     repository.Delete(entity);
     repository.SaveChanges();
     return(item);
 }
Ejemplo n.º 3
0
        public async Task <IActionResult> GetSpecificUserInfo(int userId)
        {
            if (this.HttpContext.User.IsInRole(Role.Admin) || this.HttpContext.User.IsInRole(Role.Manager))
            {
                var thisUserId = this.UserIdFromApiKey();

                var user = await _userRepository.UserFromId(userId);

                if (user == null)
                {
                    var err = new DTO.ErrorBuilder()
                              .Message("No user found with that ID")
                              .Code(400)
                              .Build();
                    return(err);
                }

                var userDTO = new DTO.UserDTO(user);
                return(new ObjectResult(userDTO));
            }
            else
            {
                var err = new DTO.ErrorBuilder()
                          .Message("You do not have the proper authorization to view user accounts.")
                          .Code(403)
                          .Build();
                return(err);
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> SetUserInfo(DTO.UserDTO userInfo)
        {
            if (this.HttpContext.User.IsInRole(Role.Manager))
            {
                if (userInfo.UserAccountType == UserAccountType.Admin)
                {
                    var err = new DTO.ErrorBuilder()
                              .Message("You do not have the proper authorization to edit Admin user accounts.")
                              .Code(403)
                              .Build();
                    return(err);
                }
            }
            else if (this.HttpContext.User.IsInRole(Role.Tenant))
            {
                var err = new DTO.ErrorBuilder()
                          .Message("You do not have the proper authorization to edit user accounts.")
                          .Code(403)
                          .Build();
                return(err);
            }

            var user = await _userRepository.UpdateUserInfo(userInfo);

            var userDTO = new DTO.UserDTO(user);

            return(new ObjectResult(userDTO));
        }
Ejemplo n.º 5
0
        public async Task <Entity.User> TryCreateAccount(DTO.UserDTO userInfo)
        {
            var userExists = await _context.Users
                             .Where(u => u.LoginName == userInfo.LoginName)
                             .Select(u => u)
                             .FirstOrDefaultAsync();

            // User account was already made.
            if (userExists != null)
            {
                return(null);
            }

            var tenant = await _context.Tenants
                         .Where(t => t.Email == userInfo.LoginName)
                         .Select(t => t)
                         .FirstOrDefaultAsync();

            // No tenant found with corresponding login name, so cannot create account.
            if (tenant == null)
            {
                return(null);
            }

            userInfo.FirstName = tenant.FirstName;
            userInfo.LastName  = tenant.LastName;

            return(await NewUser(userInfo));
        }
Ejemplo n.º 6
0
        public async Task <Entity.User> UpdateUserInfo(int userId, DTO.UserDTO userInfo)
        {
            var loginAlreadyExists = await _context.Users
                                     .Where(u => u.LoginName.ToLower() == userInfo.LoginName.ToLower())
                                     .Where(u => u.UserId != userId)
                                     .CountAsync() > 0;

            if (loginAlreadyExists)
            {
                return(null);
            }

            var user = await UserFromId(userId);

            if (user == null)
            {
                return(null);
            }

            user.FirstName = userInfo.FirstName;
            user.LastName  = userInfo.LastName;
            user.LoginName = userInfo.LoginName;
            user.Password  = Util.Hash.Sha256(userInfo.Password);
            if (!String.IsNullOrEmpty(userInfo.ApiKey))
            {
                user.ApiKey = userInfo.ApiKey;
            }

            await _context.SaveChangesAsync();

            return(user);
        }
Ejemplo n.º 7
0
        private async Task <ActionResult <object> > GenerateToken(DTO.UserDTO dto)
        {
            var(identity, person) = await GetIdentity(dto.Username, dto.Password);

            if (identity == null)
            {
                return(BadRequest(new { errorText = "Invalid username or password" }));
            }

            var now = DateTime.UtcNow;

            // создаем JWT-токен
            var jwt = new JwtSecurityToken(
                issuer: AuthOptions.ISSUER,
                audience: AuthOptions.AUDIENCE,
                notBefore: now,
                claims: identity.Claims,
                expires: now.Add(TimeSpan.FromMinutes(AuthOptions.LIFETIME)),
                signingCredentials: new SigningCredentials(AuthOptions.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256));

            var token = new JwtSecurityTokenHandler().WriteToken(jwt);

            var response = new
            {
                access_token = token,
                user_id      = identity.Name,
            };

            return(response);
        }
        public async Task <Entity.User> NewUser(DTO.UserDTO userInfo)
        {
            if (userInfo == null)
            {
                return(null);
            }
            if (String.IsNullOrEmpty(userInfo.Password))
            {
                return(null);
            }
            if (String.IsNullOrEmpty(userInfo.LoginName))
            {
                return(null);
            }

            var user = new Entity.User();

            user.FirstName       = userInfo.FirstName;
            user.LastName        = userInfo.LastName;
            user.LoginName       = userInfo.LoginName;
            user.Password        = Util.Hash.Sha256(userInfo.Password);
            user.UserAccountType = userInfo.UserAccountType;
            user.ApiKey          = Guid.NewGuid().ToString();

            await _context.AddAsync(user);

            await _context.SaveChangesAsync();

            return(user);
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> GetUserInfo()
        {
            var userId = this.UserIdFromApiKey();
            var user   = await _userRepository.UserFromId(userId);

            var userDTO = new DTO.UserDTO(user);

            return(new ObjectResult(userDTO));
        }
 private UserDTO ToDTO(Entities.UserEntity user)
 {
     DTO.UserDTO dto = new DTO.UserDTO();
     dto.AccessToken            = user.AccessToken;
     dto.Id                     = user.Id;
     dto.LoginName              = user.LoginName;
     dto.LoginErrorTimes        = user.LoginErrorTimes;
     dto.LastLoginErrorDateTime = user.LastLoginErrorDateTime;
     return(dto);
 }
Ejemplo n.º 11
0
        public async Task <ActionResult <object> > PostUser(DTO.UserDTO dto)
        {
            var user = new User {
                Login    = dto.Username,
                Password = dto.Password
            };

            _context.Users.Add(user);
            await _context.SaveChangesAsync();

            return(await GenerateToken(dto));
        }
Ejemplo n.º 12
0
        public async Task <Entity.User> NewUser(DTO.UserDTO userInfo)
        {
            var loginAlreadyExists = await _context.Users
                                     .Where(u => u.LoginName.ToLower() == userInfo.LoginName.ToLower())
                                     .CountAsync() > 0;

            if (loginAlreadyExists)
            {
                return(null);
            }

            if (userInfo == null)
            {
                return(null);
            }
            if (String.IsNullOrEmpty(userInfo.Password))
            {
                return(null);
            }
            if (String.IsNullOrEmpty(userInfo.LoginName))
            {
                return(null);
            }

            var user = new Entity.User();

            user.FirstName       = userInfo.FirstName;
            user.LastName        = userInfo.LastName;
            user.LoginName       = userInfo.LoginName;
            user.Password        = Util.Hash.Sha256(userInfo.Password);
            user.UserAccountType = userInfo.UserAccountType;
            user.ApiKey          = Guid.NewGuid().ToString();

            await _context.AddAsync(user);

            await _context.SaveChangesAsync();

            var tenant = await _context.Tenants
                         .Where(t => t.Email == user.LoginName)
                         .Select(t => t)
                         .FirstOrDefaultAsync();

            if (tenant == null)
            {
                return(null);
            }

            tenant.UserId = user.UserId;
            await _context.SaveChangesAsync();

            return(user);
        }
Ejemplo n.º 13
0
        public async Task <IActionResult> SetUserInfo(DTO.UserDTO userInfo)
        {
            // When user already logged in...
            if (this.UserInRole(Role.Tenant))
            {
                var thisUserId = this.UserIdFromApiKey();
                // Ensure a tenant cannot updated information for another user.
                userInfo.UserId = thisUserId;

                var updatedUser = await _userRepository.UpdateUserInfo(userInfo);

                if (updatedUser == null)
                {
                    var err = new DTO.ErrorBuilder()
                              .Message("User already exists with that login information or user not found.")
                              .Code(409)
                              .Build();
                    return(err);
                }
                return(new ObjectResult(updatedUser));
            }
            else if (this.UserInRole(Role.Manager) || this.UserInRole(Role.Admin))
            {
                var updatedUser = await _userRepository.UpdateUserInfo(userInfo);

                if (updatedUser == null)
                {
                    var err = new DTO.ErrorBuilder()
                              .Message("User already exists with that login information or user not found.")
                              .Code(409)
                              .Build();
                    return(err);
                }
                return(new ObjectResult(updatedUser));
            }
            else
            {
                userInfo.UserAccountType = UserAccountType.Tenant;
                var newUser = await _userRepository.TryCreateAccount(userInfo);

                if (newUser == null)
                {
                    var err = new DTO.ErrorBuilder()
                              .Message("Unable to create account, tenant information not found or already exists.")
                              .Code(404)
                              .Build();
                    return(err);
                }
                newUser.Password = "******";
                return(new ObjectResult(newUser));
            }
        }
Ejemplo n.º 14
0
 public void CreateOrUpdate(DTO.UserDTO item)
 {
     DAL.Context.User entity = mapper.Map <DTO.UserDTO, DAL.Context.User>(item);
     //if (repository.GetAll().FirstOrDefault(u => u.UserId == entity.UserId) == null)
     repository.CreateOrUpdate(entity);
     //else
     //{
     //    IEnumerable<User> users = repository.GetAll().ToList();
     //   User user =  users.FirstOrDefault(u => u.UserId == entity.UserId);
     //    mapper.Map<User, User>(entity, user);
     //    repository.SaveChanges();
     //        }
     repository.SaveChanges();
 }
Ejemplo n.º 15
0
 public static DTO.UserDTO convertToUserDTO(DAL.User user)
 {
     if (user == null)
     {
         return(null);
     }
     DTO.UserDTO newuser = new DTO.UserDTO()
     {
         userCode  = user.userCode,
         userName  = user.userName,
         userPhone = user.userPhone,
         userMail  = user.userMail
     };
     return(newuser);
 }
Ejemplo n.º 16
0
 public static DTO.UserDTO ConvertUserToDTO(DAL.User udal)
 {
     if (udal == null)
     {
         return(null);
     }
     DTO.UserDTO w = new DTO.UserDTO()
     {
         UserId             = udal.UserId,
         UserFirstName      = udal.UserFirstName,
         UserLastName       = udal.UserLastName,
         UserEmail          = udal.UserEmail,
         UserPassword       = udal.UserPassword,
         UserGooglePassword = udal.UserGooglePassword
     };
     return(w);
 }
Ejemplo n.º 17
0
 //לעשות המרה בהכל גם לליסט וכן לטפל בשגיאות אם זה ריק וכו
 public static DAL.User ConvertUserToDAL(DTO.UserDTO udto)
 {
     if (udto == null)
     {
         return(null);
     }
     DAL.User w = new DAL.User()
     {
         UserId             = udto.UserId,
         UserFirstName      = udto.UserFirstName,
         UserLastName       = udto.UserLastName,
         UserEmail          = udto.UserEmail,
         UserPassword       = udto.UserPassword,
         UserGooglePassword = udto.UserGooglePassword
     };
     return(w);
 }
Ejemplo n.º 18
0
        public static DTO.UserDTO userDTO(Dal.User user)
        {
            DTO.UserDTO userDTO = new DTO.UserDTO();

            userDTO.User_Type = user.User_Type;
            userDTO.User_kod  = user.User_kod;

            userDTO.Telephone = user.Telephone;
            userDTO.Password  = user.Password;

            userDTO.Last_Name  = user.Last_Name;
            userDTO.Is_Active  = user.Is_Active;
            userDTO.HomeTown   = user.HomeTown;
            userDTO.First_Name = user.First_Name;
            userDTO.Email      = user.Email;

            return(userDTO);
        }
Ejemplo n.º 19
0
        public async Task <Entity.User> UpdateUserInfo(int userId, DTO.UserDTO userInfo)
        {
            var user = await UserFromId(userId);

            if (user == null)
            {
                return(null);
            }

            user.FirstName = userInfo.FirstName;
            user.LastName  = userInfo.LastName;
            user.LoginName = userInfo.LoginName;
            user.Password  = Util.Hash.Sha256(userInfo.Password);

            await _context.SaveChangesAsync();

            return(user);
        }
Ejemplo n.º 20
0
 public async Task <ActionResult <object> > Token(DTO.UserDTO dto)
 {
     return(await GenerateToken(dto));
 }
Ejemplo n.º 21
0
 public bool addNewUser(DTO.UserDTO user)
 {
     return(cu.CreateUser(user));
 }