/// <summary>
        /// 删除角色下的用户
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <bool> DeleteUserAsync(RoleToUserDto dto)
        {
            if (dto.RoleId <= 0 || !dto.UserIds.HasItems())
            {
                return(false);
            }
            using (var tran = _databaseFixture.Db.BeginTransaction())
            {
                try
                {
                    var list = await _databaseFixture.Db.SysUserRole.GetRoleIdByUserIdsAsync(dto.RoleId, dto.UserIds);

                    foreach (var item in list)
                    {
                        await _databaseFixture.Db.SysUserRole.DeleteAsync(item, tran);
                    }
                    tran.Commit();
                    return(true);
                }
                catch (Exception exception)
                {
                    tran.Rollback();
                    _logJobs.ExceptionLog(dto.CurrentUserId, exception);
                    return(false);
                }
            }
        }
        public async Task <IActionResult> AddUser([FromBody] RoleToUserDto dto)
        {
            dto.CurrentUserId = UserIdentity.UserId;
            bool res = await _roleService.AddUserAsync(dto);

            return(Ok(res));
        }
Esempio n. 3
0
        /// <summary>
        /// 角色加入用户
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <bool> AddUserAsync(RoleToUserDto dto)
        {
            var uri      = API.SysRole.AddUserAsync(_baseUrl);
            var content  = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json");
            var response = await _apiClient.PostAsync(uri, content);

            response.EnsureSuccessStatusCode();
            string res = await response.Content.ReadAsStringAsync();

            return(res.ToLower() == bool.TrueString.ToLower());
        }
        /// <summary>
        /// 角色加入用户
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <bool> AddUserAsync(RoleToUserDto dto)
        {
            if (dto.RoleId <= 0 || !dto.UserIds.HasItems())
            {
                return(false);
            }
            using (var tran = _databaseFixture.Db.BeginTransaction())
            {
                try
                {
                    var userrolelist = await _databaseFixture.Db.SysUserRole.FindAllAsync(m => m.RoleId == dto.RoleId);

                    var list = userrolelist.Select(m => m.UserId).ToList();
                    //排重
                    List <long> addList = dto.UserIds.Where(item => !list.Contains(item)).ToList();
                    //添加
                    foreach (var item in addList)
                    {
                        SysUserRole userRole = new SysUserRole()
                        {
                            CreateTime = DateTime.Now.ToTimeStamp(),
                            RoleId     = dto.RoleId,
                            UserId     = item
                        };
                        await _databaseFixture.Db.SysUserRole.InsertAsync(userRole, tran);
                    }
                    tran.Commit();
                    return(true);
                }
                catch (Exception exception)
                {
                    tran.Rollback();
                    _logJobs.ExceptionLog(dto.CurrentUserId, exception);
                    return(false);
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 修改用户信息
        /// </summary>
        /// <param name="userInfo"></param>
        /// <returns></returns>
        public bool UpdateUser(UserDto userInfo)
        {
            if (userInfo == null)
            {
                return(false);
            }
            var user = _UserRepository.Get(p => p.UniqueID == userInfo.UniqueID).FirstOrDefault();

            if (user == null)
            {
                return(false);
            }
            //user
            user.LoginName   = userInfo.LoginName;
            user.LocalName   = userInfo.LocalName;
            user.DisplayName = userInfo.LocalName;
            user.EnglishName = userInfo.EnglishName;
            user.Title       = userInfo.Title;
            user.Address     = userInfo.Address;
            user.Comments    = userInfo.Comments;
            user.IsLocked    = userInfo.IsLocked.HasValue && userInfo.IsLocked == true ? 1 : 0;
            if (!string.IsNullOrEmpty(userInfo.Password))
            {
                var c   = new Cryptography("GCRIS2-20061025");
                var psd = c.Encrypt(userInfo.Password);
                if (user.Password != psd)
                {
                    user.Password = psd;
                }
            }
            //userDomain
            var userDomian = _dbContext.Set <User2Domain>().FirstOrDefault(u => u.UniqueID == userInfo.UniqueID && u.Domain == userInfo.Domain);

            if (userDomian == null)
            {
                return(false);
            }
            userDomian.Department      = userInfo.Department;
            userDomian.Telephone       = userInfo.Telephone;
            userDomian.DomainLoginName = userInfo.DomainLoginName;
            userDomian.Mobile          = userInfo.Mobile;
            userDomian.Email           = userInfo.Email;
            userDomian.IsSetExpireDate = userInfo.IsSetExpireDate ? 1 : 0;
            if (userInfo.IsSetExpireDate)
            {
                userDomian.EndDate   = userInfo.EndDate;
                userDomian.StartDate = userInfo.StartDate;
            }
            else
            {
                userDomian.EndDate   = null;
                userDomian.StartDate = null;
            }

            //user2role

            List <RoleToUserDto> listRoles = new List <RoleToUserDto>();

            if (userInfo.RolesName != null && userInfo.RolesName.Count > 0)
            {
                foreach (string strRoleName in userInfo.RolesName)
                {
                    RoleToUserDto role = new RoleToUserDto
                    {
                        RoleName = strRoleName,
                        UserID   = user.UniqueID,
                        Domain   = user.Domain
                    };
                    listRoles.Add(role);
                }
            }
            UpdateRoleToUser(listRoles);
            //UserProfile
            UpdateUserProfile(userInfo.UserProfileList, userInfo.UniqueID, userInfo.Domain);
            _dbContext.SaveChanges();
            return(true);
        }
Esempio n. 6
0
        //新增用户
        public bool SaveUser(UserDto userInfo)
        {
            if (userInfo == null)
            {
                return(false);
            }
            var userdb       = _dbContext.Set <User>();
            var userDomaindb = _dbContext.Set <User2Domain>();

            if (!UserLoginNameExist(userInfo.LoginName))
            {
                //客户端有恢复删除用户的逻辑
                return(false);
            }
            if (!DisplayNameExist(userInfo))
            {
                return(false);
            }
            //add user
            var user = Mapper.Map <UserDto, User>(userInfo);
            var c    = new Cryptography("GCRIS2-20061025");

            user.Password = c.Encrypt(userInfo.Password);
            user.UniqueID = Guid.NewGuid().ToString();
            if (string.IsNullOrEmpty(user.DisplayName))
            {
                user.DisplayName = user.LocalName;
            }
            user.DeleteMark = 0;
            userdb.Add(user);
            //add User2Domain
            var userDomain = new User2Domain();

            userDomain.UniqueID        = user.UniqueID;
            userDomain.DomainLoginName = userInfo.DomainLoginName;
            userDomain.Department      = userInfo.Department;
            userDomain.Telephone       = userInfo.Telephone;
            userDomain.Mobile          = userInfo.Mobile;
            userDomain.Email           = userInfo.Email;
            userDomain.Domain          = userInfo.Domain;
            userDomain.IsSetExpireDate = userInfo.IsSetExpireDate ? 1 : 0;
            userDomain.StartDate       = userInfo.StartDate;
            userDomain.EndDate         = userInfo.EndDate;
            userDomaindb.Add(userDomain);

            //add roletouser

            List <RoleToUserDto> listRoles = new List <RoleToUserDto>();

            if (userInfo.RolesName != null && userInfo.RolesName.Count > 0)
            {
                foreach (string strRoleName in userInfo.RolesName)
                {
                    RoleToUserDto role = new RoleToUserDto
                    {
                        RoleName = strRoleName,
                        UserID   = user.UniqueID,
                        Domain   = user.Domain
                    };
                    listRoles.Add(role);
                }
            }

            if (!UpdateRoleToUser(listRoles))
            {
                return(false);
            }
            //add userprofile
            var rps  = GetRoleProfiles(userInfo.Domain);
            var updb = _dbContext.Set <UserProfile>();

            if (rps != null)
            {
                string strPropertyOption = null;
                int    canBeInherited    = -1;
                foreach (var rp in rps)
                {
                    strPropertyOption = Convert.ToString(rp.PropertyOptions);
                    if (!strPropertyOption.Contains("|"))
                    {
                        strPropertyOption = strPropertyOption.Replace("''", "'");
                    }
                    canBeInherited = rp.CanBeInherited - 1;
                    var up = new UserProfile();
                    up.UniqueID = Guid.NewGuid().ToString();
                    up.Name     = rp.Name;
                    up.ModuleID = rp.ModuleID;
                    up.RoleName = rp.RoleName;
                    up.UserID   = user.UniqueID;
                    if (rp.Name.ToUpper() == "ACCESSSITE")
                    {
                        up.Value = userInfo.AccessSites != null? userInfo.AccessSites: userInfo.Site;
                    }
                    else
                    {
                        up.Value = rp.Name.ToUpper() == "BELONGTOSITE" ? userInfo.Site : rp.Value;
                    }
                    up.IsExportable    = rp.IsExportable;
                    up.PropertyDesc    = rp.PropertyDesc.Trim();
                    up.PropertyOptions = strPropertyOption;
                    up.CanBeInherited  = canBeInherited;
                    up.PropertyType    = rp.PropertyType;
                    up.IsHidden        = 1;
                    up.OrderingPos     = rp.OrderingPos;
                    up.Domain          = user.Domain;
                    updb.Add(up);
                }
            }
            _dbContext.SaveChanges();
            return(true);
        }
 public async Task <bool> AddUserAsync([FromBody] RoleToUserDto dto)
 {
     return(await _roleService.AddUserAsync(dto));
 }