/// <summary>
 /// 转换为角色权限实体
 /// </summary>
 /// <param name="dto">角色权限数据传输对象</param>
 public static RolePermission ToEntity(this RolePermissionDto dto)
 {
     if (dto == null)
     {
         return(new RolePermission());
     }
     return(dto.MapTo(new RolePermission(dto.Id.ToGuid())));
 }
        public async Task <long> UpdateRolePermissionAsync(RolePermissionDto rolePermissionDto)
        {
            var rolePermission = new RolePermission();

            Mapper.Map(rolePermissionDto, rolePermission);
            var rowsUpdated = await rolePermissionRepository.UpdateRolePermissionAsync(rolePermission, rolePermissionDto.MappingScheme);

            return(rowsUpdated);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public async Task <RolePermissionDto> GetRolePermissions(int roleId)
        {
            var permisMenus      = (await _rolePermissionRepository.GetPermissionByRole(roleId, SysConst.MENU)).ToList();
            var permisOperations = (await _rolePermissionRepository.GetPermissionByRole(roleId, SysConst.OPERATION)).ToList();
            var result           = new RolePermissionDto
            {
                PermissionMenuIds      = permisMenus.Select(p => p.Id).ToList(),
                PermissionOperationIds = permisOperations.Select(p => p.Id).ToList()
            };

            return(result);
        }
 /// <summary>
 /// 转换为角色权限实体
 /// </summary>
 /// <param name="dto">角色权限数据传输对象</param>
 public static RolePermission ToEntity3(this RolePermissionDto dto)
 {
     if (dto == null)
     {
         return(new RolePermission());
     }
     return(RolePermissionFactory.Create(
                rolePermissionId: dto.Id.ToGuid(),
                roleId: dto.RoleId,
                permissionId: dto.PermissionId,
                version: dto.Version
                ));
 }
 /// <summary>
 /// 转换为角色权限实体
 /// </summary>
 /// <param name="dto">角色权限数据传输对象</param>
 public static RolePermission ToEntity2(this RolePermissionDto dto)
 {
     if (dto == null)
     {
         return(new RolePermission());
     }
     return(new RolePermission(dto.Id.ToGuid())
     {
         RoleId = dto.RoleId,
         PermissionId = dto.PermissionId,
         Version = dto.Version,
     });
 }
        public async Task <RESTResult> SetPermissionToRoleAsync(Guid currentUserId, RolePermissionDto rolePermissionInfo)
        {
            RESTResult result = new RESTResult {
                Code = RESTStatus.NotData
            };

            if (rolePermissionInfo.RoleId == null)
            {
                result.Message = "The role id could not be null";
                return(result);
            }
            if (rolePermissionInfo.PermissionIds.Contains(null))
            {
                result.Message = "The permision ids could not be null";
                return(result);
            }
            //TOOD:Get the current role permission
            var rolePermissions = await _rolePermissionRepository.GetAllListAsync(item => item.RoleId.Equals(rolePermissionInfo.RoleId));

            //TODO: remove the exist role permission
            foreach (var item in rolePermissions)
            {
                await _rolePermissionRepository.DeleteAsync(item);
            }
            RolePermission rolePermissionEntity;

            foreach (var permissionId in rolePermissionInfo.PermissionIds)
            {
                //TODO: Add new permission;
                rolePermissionEntity = new RolePermission
                {
                    RoleId         = rolePermissionInfo.RoleId.Value,
                    PermissionId   = permissionId.Value,
                    CreateByUserId = currentUserId,
                    CreateTime     = DateTime.Now
                };
                await _rolePermissionRepository.InsertAsync(rolePermissionEntity);
            }
            result.Code    = RESTStatus.Success;
            result.Message = "Set permission to role successful";
            return(result);
        }
Ejemplo n.º 7
0
        public async Task UpdateRolePermissionAsync(RolePermissionDto dto)
        {
            var role = await _dbContent.Roles.FindAsync(dto.Id);

            if (role == null)
            {
                throw new UserOperationException("角色不存在");
            }
            //移除角色旧的权限
            var oldClaims = await _dbContent.RoleClaims.Where(b => b.RoleId == dto.Id).ToListAsync();

            _dbContent.RoleClaims.RemoveRange(oldClaims);
            await _dbContent.SaveChangesAsync();

            //给角色添加新的用户
            var newClaims = dto.Permissions.Select(b => new IdentityRoleClaim <Guid> {
                RoleId = dto.Id, ClaimType = "permission", ClaimValue = b
            }).ToList();
            await _dbContent.RoleClaims.AddRangeAsync(newClaims);

            await _dbContent.SaveChangesAsync();
        }
Ejemplo n.º 8
0
        public async Task <RolePermissionDto> GetRolePermissionListById(int id)
        {
            List <SqlParameter> parms = new List <SqlParameter>
            {
                new SqlParameter {
                    ParameterName = UserRoleByIdStoredProcedure.StoredProcedureParameters[0].ToString(),
                    Value         = id.AsDbValue()
                }
            };

            var rolePermissionList = await _tcContext.Set <UserModulePermission>().FromSqlRaw(UserRoleByIdStoredProcedure.Sql, parms.ToArray()).ToListAsync();

            var role = _tcContext.Roles.Where(x => x.Id == id).FirstOrDefault();

            RolePermissionDto rolePermission = new RolePermissionDto()
            {
                RoleId             = role.Id,
                RoleName           = role.Description,
                RolePermissionList = rolePermissionList
            };

            return(rolePermission);
        }
        public async Task <IHttpActionResult> UpdateRolePermission(RolePermissionDto rolePermissionDto)
        {
            await rolePermissionManager.UpdateRolePermissionAsync(rolePermissionDto);

            return(Ok());
        }
        public async Task <IHttpActionResult> CreateRolePermission(RolePermissionDto rolePermissionDto)
        {
            var rolePermissionId = await rolePermissionManager.CreateRolePermissionAsync(rolePermissionDto);

            return(Ok(rolePermissionId));
        }
Ejemplo n.º 11
0
        public override Task <SetRolePermissionResponse> SetRolePermission(SetRolepermissionRequest request,
                                                                           ServerCallContext context)
        {
            var result = new SetRolePermissionResponse {
                IsComplete = true
            };
            var datas = _roleMenu.GetAllList(item => item.RoleId == request.RoleId);

            if (datas.Count > 0)
            {
                _roleMenu.Delete(item => item.RoleId == request.RoleId);
            }

            if (request.MenuIds.Count == 0)
            {
                return(Task.FromResult(result));
            }

            var models = new List <RolePermissionDto>();
            var list   = new List <SysRoleMenu>();

            request.MenuIds.ToList().ForEach(item =>
            {
                var model        = new RolePermissionDto();
                var operateArray = item.Split('_');
                if (Convert.ToInt32(operateArray.LastOrDefault()) == 0)
                {
                    if (models.FirstOrDefault(m => m.MenuId == Convert.ToInt32(operateArray.FirstOrDefault())) != null)
                    {
                        return;
                    }
                    model.MenuId = Convert.ToInt32(operateArray.FirstOrDefault());
                    models.Add(model);
                }
                else
                {
                    var data = models.FirstOrDefault(m => m.MenuId == Convert.ToInt32(operateArray.FirstOrDefault()));
                    if (data == null)
                    {
                        model.MenuId = Convert.ToInt32(operateArray.FirstOrDefault());
                        model.Operates.Add(Convert.ToInt32(operateArray.LastOrDefault()));
                        models.Add(model);
                    }
                    else
                    {
                        data.Operates.Add(Convert.ToInt32(operateArray.LastOrDefault()));
                    }
                }
            });

            models.ForEach(rp =>
            {
                var menu = _menu.SingleOrDefault(item => item.Id == rp.MenuId);
                if (menu == null)
                {
                    return;
                }

                var roleMenu = new SysRoleMenu
                {
                    MenuId   = rp.MenuId,
                    RoleId   = request.RoleId,
                    Operates = JsonConvert.SerializeObject(menu.ParentId == 0
                        ? new List <int>()
                        : rp.Operates)
                };

                list.Add(roleMenu);
            });

            if (!_roleMenu.BatchInsert(list))
            {
                result.IsComplete = false;
            }

            return(Task.FromResult(result));
        }
Ejemplo n.º 12
0
        public async Task <IActionResult> UpdateRolePersmissionAsync([FromBody] RolePermissionDto dto)
        {
            await _roleService.UpdateRolePermissionAsync(dto);

            return(Ok("更新角色权限成功"));
        }
Ejemplo n.º 13
0
 public bool UpdateRolePermission(RolePermissionDto dto)
 {
     return(Unit.UserRepository.UpdateUserAccount(dto.ToModel <ECIT.GIS.Entity.UserAccount>()));
 }
Ejemplo n.º 14
0
        public ApiReponse <object> SetRolePermission(SetRolePermissionDto input)
        {
            var datas = _roleMenu.GetAllList(item => item.RoleId == input.RoleId);

            if (datas.Count > 0)
            {
                _roleMenu.Delete(item => item.RoleId == input.RoleId);
            }

            if (input.MenuIds.Count == 0)
            {
                return(new ApiReponse <object>("设置成功"));
            }

            var models = new List <RolePermissionDto>();
            var list   = new List <MkoRoleMenu>();

            RolePermissionDto model = null;

            input.MenuIds.ForEach(item =>
            {
                model            = new RolePermissionDto();
                var operateArray = item.Split('_');
                if (Convert.ToInt32(operateArray.LastOrDefault()) == 0)
                {
                    if (models.FirstOrDefault(m => m.MenuId == Convert.ToInt32(operateArray.FirstOrDefault())) != null)
                    {
                        return;
                    }
                    model.MenuId = Convert.ToInt32(operateArray.FirstOrDefault());
                    models.Add(model);
                }
                else
                {
                    var data = models.FirstOrDefault(m => m.MenuId == Convert.ToInt32(operateArray.FirstOrDefault()));
                    if (data == null)
                    {
                        model.MenuId = Convert.ToInt32(operateArray.FirstOrDefault());
                        model.Operates.Add(Convert.ToInt32(operateArray.LastOrDefault()));
                        models.Add(model);
                    }
                    else
                    {
                        data.Operates.Add(Convert.ToInt32(operateArray.LastOrDefault()));
                    }
                }
            });

            models.ForEach(dy =>
            {
                var menu = _menu.SingleOrDefault(item => item.Id == dy.MenuId);
                if (menu == null)
                {
                    return;
                }

                var roleMenu = new MkoRoleMenu
                {
                    MenuId   = dy.MenuId,
                    RoleId   = input.RoleId,
                    Operates = JsonConvert.SerializeObject(menu.ParentId == 0
                        ? new List <int>()
                        : dy.Operates)
                };

                list.Add(roleMenu);
            });

            var result = _roleMenu.BatchInsert(list);

            if (!result)
            {
                throw new MarukoException("设置失败");
            }

            return(new ApiReponse <object>("设置成功"));
        }