예제 #1
0
        public async Task <object> MapUserRole(int userid, int roleID)
        {
            var item = await _userRoleRepository.FindAll().Where(x => x.UserID == userid).ToListAsync();

            if (item.Count == 0)
            {
                try
                {
                    _userRoleRepository.Add(new UserRole
                    {
                        UserID = userid,
                        RoleID = roleID,
                    });

                    return(new
                    {
                        status = await _userRoleRepository.SaveAll(),
                        message = "Mapping Successfully!"
                    });
                }
                catch (Exception)
                {
                    return(new
                    {
                        status = false,
                        message = "Failed on save!"
                    });
                }
            }
            else
            {
                try
                {
                    _userRoleRepository.RemoveMultiple(item);
                    await _userRoleRepository.SaveAll();

                    _userRoleRepository.Add(new UserRole
                    {
                        UserID = userid,
                        RoleID = roleID,
                    });


                    return(new
                    {
                        status = await _userRoleRepository.SaveAll(),
                        message = "Mapping Successfully!"
                    });
                }
                catch (Exception)
                {
                    return(new
                    {
                        status = false,
                        message = "Failed on save!"
                    });
                }
            }
        }
예제 #2
0
 public void AddUserRole(int userId, int roleId)
 {
     _userRoleRepository.Add(new UserRole()
     {
         UserId = userId, RoleId = roleId
     });
 }
예제 #3
0
        public IActionResult AddAuthorize(List <UserRole> urs)
        {
            JsonResult jr;
            var        userId = urs[0].UserId;
            var        urList = urRepository.QueryWhere(p => p.UserId == userId).ToList();
            var        list   = urs.Except(urList, new UserRoleListEquality()).ToList();

            if (list.Count <= 0)
            {
                return(Json(new { success = 0, msg = "添加成功" }));
            }
            foreach (var i in urs)
            {
                urRepository.Add(i);
            }
            try
            {
                urRepository.SaverChanges();
                jr = Json(new { success = 0, msg = "添加成功" });
            }
            catch (Exception)
            {
                jr = Json(new { success = -1, msg = "添加失败" });
            }
            return(jr);
        }
예제 #4
0
        public void Add(User user, IEnumerable <Role> roles)
        {
            _userRepository.Add(user);

            foreach (var role in roles)
            {
                var userRole = new UserRole()
                {
                    Id   = Guid.NewGuid(),
                    User = user,
                    Role = role
                };

                _userRoleRepository.Add(userRole);
            }
        }
예제 #5
0
        public ActionResult Create(UserRoleModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    UserRole userRole = _mapper.Map <UserRole>(model);
                    userRole.CreatedDate = DateTime.Now;

                    _repo.Add(userRole);

                    if (userRole.Id <= 0)
                    {
                        TempData["Error"] = "Insert failed!";
                    }
                    else
                    {
                        TempData["Message"] = $"User Role with Code = '{model.Code}' added successfully!";
                    }

                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                return(Exception(ex));
            }
        }
예제 #6
0
        public int Add(SessionContext sessionContext, UserRole userRole)
        {
            try
            {
                int userOrganizationId = _userRepository.GetUserOrganization(userRole.UserId);
                if (sessionContext.OrganizationId != userOrganizationId)
                {
                    return(0);
                }

                return(_userRoleRepository.Add(userRole));
            }
            catch (Exception ex)
            {
                _logger.LogException(new ExceptionLog
                {
                    ExceptionDate   = DateTime.Now,
                    ExceptionMsg    = ex.Message,
                    ExceptionSource = ex.Source,
                    ExceptionType   = "UserService",
                    FullException   = ex.StackTrace
                });
                return(0);
            }
        }
예제 #7
0
        // 将指定的用户赋予特定的角色。
        public UserRole AssignRole(User user, Role role)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (role == null)
            {
                throw new ArgumentNullException("role");
            }
            var userRole = _userRoleRepository.GetBySpecification(Specification <UserRole> .Eval(ur => ur.UserId == user.Id));

            if (userRole == null)
            {
                userRole = UserRole.CreateUserRole(user, role);
                _userRoleRepository.Add(userRole);
            }
            else
            {
                userRole.RoleId = role.Id;
                _userRoleRepository.Update(userRole);
            }

            _repositoryContext.Commit();
            return(userRole);
        }
예제 #8
0
        public ActionResult Action(webpages_Roles objSubmit)
        {
            if (objSubmit.RoleId == 0)
            {
                objSubmit.DateCreated = DateTime.Now;
                objSubmit.DateUpdated = DateTime.Now;
                objSubmit.IsDeleted   = false;
                objSubmit.IsShow      = true;
                userRoleRepository.Add(objSubmit);
            }
            else
            {
                var obj = userRoleRepository.GetById <webpages_Roles>(objSubmit.RoleId);

                UpdateModel(obj);

                objSubmit.DateUpdated = DateTime.Now;

                userRoleRepository.Update(obj);
            }

            return(Json(new
            {
                Error = false
            }, JsonRequestBehavior.AllowGet));
        }
예제 #9
0
        //添加角色
        public int User_Role_Add(UserRoleAddViewModel userRoleAddViewModel)
        {
            var role_Info = _IMapper.Map <UserRoleAddViewModel, User_Role>(userRoleAddViewModel);

            _IUserRoleRepository.Add(role_Info);
            return(_IUserRoleRepository.SaveChanges());
        }
예제 #10
0
파일: UserStore.cs 프로젝트: dobrucki/PAS
        public async Task AddToRoleAsync(User user, string roleName, CancellationToken cancellationToken)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            if (string.IsNullOrWhiteSpace(roleName))
            {
                throw new ArgumentNullException(nameof(roleName));
            }

            //var role = await _roleStore.FindByNameAsync(roleName.Normalize(), cancellationToken);
            var role = _roleRepository
                       .GetAll(r => string.Equals(r.Name.ToUpper(), roleName.ToUpper())).FirstOrDefault();

            if (role == null)
            {
                throw new InvalidOperationException("Role not found");
            }

            var userRole = new UserRole
            {
                Role = role,
                User = user
            };

            _userRoleRepository.Add(userRole);
        }
예제 #11
0
        /// <summary>
        /// 将指定的用户赋予特定的角色。
        /// </summary>
        /// <param name="user">用户实体。</param>
        /// <param name="role">角色实体。</param>
        /// <returns>用以表述用户及其角色之间关系的实体。</returns>
        public UserRole AssignRole(User user, Role role)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (role == null)
            {
                throw new ArgumentNullException("role");
            }
            UserRole userRole = userRoleRepository.Find(Specification <UserRole> .Eval(ur => ur.UserID == user.ID));

            if (userRole == null)
            {
                userRole = new UserRole(user.ID, role.ID);
                userRoleRepository.Add(userRole);
            }
            else
            {
                userRole.RoleID = role.ID;
                userRoleRepository.Update(userRole);
            }
            repositoryContext.Commit();
            return(userRole);
        }
예제 #12
0
        public async Task <MessageModel <string> > Put([FromBody] SysAdmin SysAdmin)
        {
            // 这里也要做后期处理,会有用户个人中心的业务

            var data = new MessageModel <string>();

            if (SysAdmin != null && SysAdmin.uID > 0)
            {
                if (SysAdmin.RID > 0)
                {
                    var usrerole = await _userRoleRepository.Query(d => d.UserId == SysAdmin.uID && d.RoleId == SysAdmin.RID);

                    if (usrerole.Count == 0)
                    {
                        await _userRoleRepository.Add(new UserRole(SysAdmin.uID, SysAdmin.RID));
                    }
                }

                data.success = await _SysAdminRepository.Update(SysAdmin);

                if (data.success)
                {
                    data.msg      = "更新成功";
                    data.response = SysAdmin?.uID.ObjToString();
                }
            }

            return(data);
        }
예제 #13
0
        public async Task AddToRoleAsync(User user, string roleName)
        {
            ThrowIfDisposed();

            if (user == null)
            {
                throw new ArgumentNullException("user");
            }
            if (string.IsNullOrWhiteSpace(roleName))
            {
                throw new ArgumentNullException("roleName");
            }

            var role = await _roleRepository.FindByNameAsync(roleName);

            if (role == null)
            {
                throw new InvalidOperationException("role not found");
            }

            _userRoleRepository.Add(new UserRole
            {
                RoleId = role.Id,
                UserId = user.Id
            });
            await _uow.SaveChangesAsync();
        }
        public void Register(User user)
        {
            if (UserRepository.FindUserByEmail(user.Email) != null)
            {
                throw new InvalidEmailAddressException("Email adress is allready in use! Please introduce another " +
                                                       "email adress");
            }
            else
            {
                var encrypt = new EncryptDecrypt();
                user.Password = encrypt.encryptPassword(user.Password);

                UserRepository.Add(user);
                Role role = roleRepository.getBySlug("listner");
                UserRoleRepository.Add(new UserRole {
                    UserId = user.UserId, User = user, Role = role, RoleId = role.RoleId
                });

                MailAddress sender   = new MailAddress("*****@*****.**");
                MailAddress receiver = new MailAddress(user.Email);
                string      mailBody = "Thank you for your registration. Your account " +
                                       "has been created succesfully.\nYour credentials are : \n" +
                                       "Username : "******"\nPassword : "******"Registration complete";
                MailSender.sendMail(receiver, mailBody, mailSubject);
            }
        }
예제 #15
0
        public bool CreateUser(UserInfoManagementInDTO user, Guid userInfoId, string imageURL)
        {
            try
            {
                if (ValidateEmail(user.Email) != Guid.Empty)
                {
                    return(false);
                }

                var userInfo = new UserInfo();
                userInfo.Address    = user.Address;
                userInfo.EntityId   = user.CompanyId;
                userInfo.ContactNo  = user.ContactNo;
                userInfo.Country    = user.Country;
                userInfo.Email      = user.Email;
                userInfo.FirstName  = user.FirstName;
                userInfo.LastName   = user.LastName;
                userInfo.Position   = user.Position;
                userInfo.Status     = user.Status;
                userInfo.Timezone   = user.Timezone;
                userInfo.CreatedBy  = userInfoId;
                userInfo.ModifiedBy = userInfoId;
                userInfo.ModifiedOn = Localization.GetUTCDateNow();
                userInfo.CreatedOn  = Localization.GetUTCDateNow();
                userInfo.UserInfoId = Guid.NewGuid();
                userInfo.ImageURL   = imageURL;

                var userId = _userInfoRepository.Add(userInfo);

                foreach (var mappedRole in user.RoleMappingItems)
                {
                    var userRole = new UserRole();
                    userRole.UserId     = userId;
                    userRole.RoleId     = mappedRole.RoleId;
                    userRole.CreatedBy  = userInfoId;
                    userRole.CreatedOn  = Localization.GetUTCDateNow();
                    userRole.ModifiedBy = userInfoId;
                    userRole.ModifiedOn = Localization.GetUTCDateNow();
                    _userRoleRepository.Add(userRole, true);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return(true);
        }
예제 #16
0
        public ActionResult Create(UserViewModel model)
        {
            if (ModelState.IsValid && Validate(model))
            {
                try
                {
                    model.Id = Guid.NewGuid().ToString();
                    User user = new User();
                    PropertyCopy.Copy(model, user);
                    user.Password = Security.EncryptPassword(model.Password);
                    userRepository.Add(user);
                    if (model.Roles != null)
                    {
                        var addUserRole = model.Roles.Select(p => new UserRole()
                        {
                            Id     = Guid.NewGuid().ToString(),
                            RoleId = p,
                            UserId = model.Id
                        }).ToList();
                        userRoleRepository.Add(addUserRole);
                    }
                    //add customer
                    Customer customer = new Customer()
                    {
                        Id    = model.Id,
                        Email = model.Email
                    };

                    accountRepository.Add(customer);
                    userRepository.Save(requestContext);
                    accountRepository.Save(requestContext);

                    _logger.LogInformation("Create User {0} - ID: {1}", user.UserName, user.Id);
                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    _logger.LogError(e, "Update user {0} failed", model.UserName);
                    return(View());

                    throw;
                }
            }
            return(View());
        }
예제 #17
0
 /// <summary>
 /// 添加角色用户
 /// </summary>
 /// <param name="userRoleList"></param>
 public void AddRoleUser(IList <UserRole> userRoleList)
 {
     try
     {
         userRoleRepository.UnitOfWork.BeginTrans();
         foreach (var m in userRoleList)
         {
             m.Id = Guid.NewGuid().ToString();
             userRoleRepository.Add(m);
         }
         userRoleRepository.SaveChanges();
         userRoleRepository.UnitOfWork.Commit();
     }
     catch (Exception ex)
     {
         userRoleRepository.UnitOfWork.Rollback();
         throw ex;
     }
 }
예제 #18
0
        public async Task <int> AddUser(User user)
        {
            int userId = 0;

            userId = await Add(user);

            if (!string.IsNullOrEmpty(user.RoleIds))
            {
                var      arr      = user.RoleIds.Split(",");
                UserRole userRole = new UserRole();
                foreach (var item in arr)
                {
                    userRole.UserId = userId;
                    userRole.RoleId = Convert.ToInt32(item);
                    await _userRoleRepository.Add(userRole);
                }
            }

            return(userId);
        }
예제 #19
0
 public void AddListRole(List <int> listRoleId, long UserId)
 {
     foreach (var item in listRoleId)
     {
         var userRole = new UserRole()
         {
             RoleId = item,
             UserId = UserId
         };
         _userRoleRepository.Add(userRole);
     }
 }
 public void InsertUserRole(UserRoleViewModel userRole)
 {
     if (Validate(userRole.UserId, userRole.RoleId))
     {
         UserRole entity = new UserRole();
         Map(userRole, entity);
         _userRoleRepository.AttachNavigation(entity.User);
         _userRoleRepository.AttachNavigation(entity.Role);
         _userRoleRepository.Add(entity);
         _unitOfWork.SaveChanges();
     }
 }
        public async Task AddToRoleAsync(TApplicationUser user, string roleName)
        {
            var roleEntity = await roleStore.FindByNameAsync(roleName);

            if (roleEntity != null)
            {
                var userRole = new TApplicationUserRole {
                    UserId = user.Id, RoleId = roleEntity.Id
                };
                await userRoleRepository.Add(userRole.MapTo <TUserRole>(), session);
            }
        }
 public ActionResult Save(UserRoles userRoles)
 {
     try
     {
         var result = userRoleRepository.Add(userRoles);
         return(Ok(new { success = true, successMessage = "Saved Successfully" }));
     }
     catch (Exception ex)
     {
         return(Ok(new { success = false, errorMessage = ex.GetBaseException() }));
     }
 }
예제 #23
0
        public async Task UpdateUserRole(string role, Guid userId, bool allow)
        {
            User user = await _userRepository.GetById(userId);

            if (user == null)
            {
                Notify("Usuário não encontrado");
                return;
            }
            var findRole = await _roleRepository.Find(r => r.Name.ToLower() == role.ToLower());

            if (!findRole.Any())
            {
                Notify($"A role {role} não foi encontrada.");
                return;
            }

            Guid roleId    = findRole.FirstOrDefault().Id;
            var  userRoles = await _repository.Find(e => e.UserId == userId && e.RoleId == roleId);

            if (!allow)
            {
                if (userRoles.Any())
                {
                    await _repository.Remove(userRoles.FirstOrDefault());
                }
            }
            else
            {
                if (!userRoles.Any())
                {
                    UserRoles newUserRole = new UserRoles()
                    {
                        RoleId = roleId,
                        UserId = userId
                    };

                    await _repository.Add(newUserRole);
                }
            }

            var userRolesList = await _repository.Find(r => r.UserId == userId);

            var claims = new Dictionary <string, object>();

            foreach (var item in userRolesList)
            {
                claims.Add(item.Role.Name, true);
            }

            await this.UpdateUserClaims(user.Id, claims);
        }
예제 #24
0
        public async Task <User> Register(User user, string password)
        {
            byte[] passwordHash, passwordSalt;
            PasswordChecker.CreatePasswordHash(password, out passwordHash, out passwordSalt);

            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;

            var roles = await _roleRepository.GetAll();

            var role = roles.Where(i => i.Name == "REGISTERED_USER").FirstOrDefault();
            var id   = await _userRepository.Add(user);

            var endUser = await _userRepository.GetById(id.ToString());

            await _userRoleRepository.Add(new UserRole()
            {
                UserId = id,
                RoleId = role.Id
            });

            return(endUser);
        }
예제 #25
0
        public void SetRoles(IUserRoleRepository repository, Guid userId, Guid tenantId, Guid? roleId, string handler)
        {
            var spec = Specification<UserRole>.Eval(u => u.UserId == userId)
                        .And(Specification<UserRole>.Eval(u => u.Role.TenantId == tenantId));

            var userRole = repository.Find(spec);
            if (userRole != null)
                repository.Remove(userRole);

            if (!roleId.HasValue)
                return;

            var addUserRole = new UserRole(userId, roleId.Value, handler);
            repository.Add(addUserRole);
        }
예제 #26
0
        //lazy
        public UserDto Add(UserDto userDto)
        {
            var user1 = userDto.UserDtoToUser();
            var user2 = _userRepository.Add(user1);

            foreach (var ur in userDto.RoleId)
            {
                UserRole userRole = new UserRole()
                {
                    RoleId = ur, UserId = user2.Id
                };
                var userRole2 = _userRoleRepository.Add(userRole);
                //       user2.UserRoles.Add(userRole);
            }
            return(user2.UserToUserDtoForAdd());
        }
예제 #27
0
        public async Task AddToRoleAsync(TUser user, string roleName, CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.ThrowIfCancellationRequested();
            var roleEntity = await roleStore.FindByNameAsync(roleName, cancellationToken);

            if (roleEntity != null)
            {
                var userRole = new TUserRole()
                {
                    UserId = user.Id, RoleId = roleEntity.Id
                };
                var newRole = await userRoleRepository.Add(userRole, session);

                user.UserRoles.Add(newRole);
            }
        }
예제 #28
0
        public bool Create(UserRole obj)
        {
            bool isSuccess = false;

            try
            {
                isSuccess = true;
                _UserRoleRepository.Add(obj);
                Save();
            }
            catch (Exception ex)
            {
                isSuccess = false;
                throw ex;
            }
            return(isSuccess);
        }
예제 #29
0
        private void AddUserToRole(User user, int roleId)
        {
            var role = _roleRepository.GetById(roleId);

            if (role == null)
            {
                throw new ApplicationException("Role doesn't exist.");
            }

            var userRole = new UserRole()
            {
                RoleId = role.Id,
                UserId = user.Id
            };

            _userRoleRepository.Add(userRole);
        }
        public void InsertUserRole(UserRoleViewModel userRole)
        {
            User userEntity = new User();

            Map(userRole.User, userEntity);
            userEntity = _userRepository.Add(userEntity);

            UserRole userRoleEntity = new UserRole();

            userRoleEntity.UserId = userEntity.Id;
            userRoleEntity.RoleId = userRole.RoleId;
            _userRoleRepository.AttachNavigation <User>(userRoleEntity.User);
            _userRoleRepository.AttachNavigation <Role>(userRoleEntity.Role);
            _userRoleRepository.Add(userRoleEntity);

            _unitOfWork.SaveChanges();
        }
예제 #31
0
        public async Task <ActionResult> UpdateUserRole(string RoleID, string UserIDs)
        {
            try
            {
                if (RoleID != null && UserIDs != null)
                {
                    string[] userid = UserIDs.Split(',');
                    //Guid groleid = new Guid(RoleID);
                    int intRoleID = Convert.ToInt32(RoleID);
                    foreach (var item in userid)
                    {
                        //Guid gUserID = new Guid(item);
                        int  intUserID = Convert.ToInt32(item);
                        bool IsExist   = await UserRoleRepository.ExistAsync(ur => ur.RoleID == intRoleID && ur.UserID == intUserID);

                        if (!IsExist)
                        {
                            UserRole ur = new UserRole();
                            ur.RoleID = intRoleID;
                            ur.UserID = intUserID;
                            UserRoleRepository.Add(ur);
                        }
                    }
                    return(Json(new
                    {
                        Success = true
                    }));
                }
                return(Json(new
                {
                    Success = false
                }));
            }
            catch (Exception ex)
            {
                LogRepository.Add(new EventLog()
                {
                    Name = Session["LoginedUser"].ToString(), Date = DateTime.Now.ToLocalTime(), Event = "更新用户角色失败" + ex.Message
                });
                return(Json(new
                {
                    Success = false
                }));
            }
        }