public PermissionDtoContainer AddOperations(SecurityResourceDto resource, List <OperationDto> operationDtos) { PermissionDtoContainer responseContainer = new PermissionDtoContainer(); PermissionTDataAccess rtoDa = new PermissionTDataAccess(); List <PermissionDto> insertList = new List <PermissionDto>(); foreach (var operationDto in operationDtos) { var relations = rtoDa.GetSingle(it => it.ResourceId == resource.SecurityResourceId && it.OperationId == operationDto.OperationId); if (relations == null) { PermissionDto dto = new PermissionDto() { ResourceId = resource.SecurityResourceId, OperationId = operationDto.OperationId }; insertList.Add(dto); responseContainer.PermissionDtoList.Add(dto); } //else //{ // PermissionDto response = new PermissionDto(); // resource.SetIdentity(operationDto.Id); // response.Response.AddBusinessException("ارتباط قبلا تعریف شده است!", BusinessExceptionEnum.Operational); //} } if (insertList.Count > 0) { rtoDa.Insert(insertList); } return(responseContainer); }
public PermissionDtoContainer GetCurrentRolePermissions(int roleId) { PermissionDtoContainer container = new PermissionDtoContainer(); var opRes = this.Repository.Context.PermissionToRoles.Where(it => it.RoleId == roleId).Select(x => new { permission = x.Permission, operation = x.Permission.Operation, resource = x.Permission.Securityresource, AccessType = x.PermisssionAccess }).ToList(); foreach (var item in opRes) { var permission = PermissionRepository.GetDto(item.permission); var operatoin = item.operation; var resource = item.resource; permission.OperationDto = OperationRepository.GetDto(operatoin); permission.SecurityResourceDto = SecurityResourceRepository.GetDto(resource); permission.SecurityResourceDto.Checked = true; container.PermissionDtoList.Add(permission); // container.SecurityResourceDtoList.Add(permission.SecurityResourceDto); permission.SecurityResourceDto.Checked = true; if (item.AccessType == 0) { permission.AccessType = Common.Enums.AccessType.None; } if (item.AccessType == -1) { permission.AccessType = Common.Enums.AccessType.Deny; } if (item.AccessType == 1) { permission.AccessType = Common.Enums.AccessType.Access; permission.OperationDto.Checked = true; AddResources(permission.SecurityResourceDto, container.SecurityResourceDtoList); } } return(container); }
public Framework.Common.CommonBase.DtoContainer GetAllByCondition(string predicate) { var pars = EntityHelper.ConvertExpression <Permission>(predicate); PermissionDtoContainer container = new PermissionDtoContainer(); var dtoResult = permissionBussiness.GetAll(pars); container.PermissionDtoList.AddRange(dtoResult); return(container); }
public Framework.Common.CommonBase.DtoContainer GetAll() { var result = permissionBussiness.GetAll(); PermissionDtoContainer container = new PermissionDtoContainer() { PermissionDtoList = result.ToList() }; return(container); }
public Common.DTOContainer.PermissionDtoContainer UserPermissions(Common.DTO.UserDto user) { var permissionList = ((PermissionTDataAccess)this.dataAccess).GetUserPermissions(user.UserId); PermissionDtoContainer container = new PermissionDtoContainer(); if (permissionList != null && permissionList.Count > 0) { container.PermissionDtoList.AddRange(permissionList); } return(container); }
public Common.DTOContainer.PermissionDtoContainer RolePermissions(Common.DTO.RoleDto role) { var permissionList = ((PermissionTDataAccess)this.dataAccess).GetRolePermissions(role.RoleId); PermissionDtoContainer container = new PermissionDtoContainer(); if (permissionList != null && permissionList.Count > 0) { container.PermissionDtoList.AddRange(permissionList); } return(container); }
public Framework.Common.CommonBase.DtoContainer InsertBatch(Framework.Common.PersistantPackage.PersistanceBox dtoList) { List <PermissionDto> lst = dtoList.PersistanceList.Cast <PermissionDto>().ToList(); permissionBussiness.Insert(lst); PermissionDtoContainer container = new PermissionDtoContainer() { PermissionDtoList = lst }; return(container); }
public PermissionDtoContainer GetGroupPermissionContainer(int groupId) { PermissionDtoContainer container = new PermissionDtoContainer(); var opRes = (from g in this.Repository.Context.SecurityGroups join rg in this.Repository.Context.RoleToGroups on g.SecurityGroupId equals rg.GroupId join rp in this.Repository.Context.PermissionToRoles on rg.RoleId equals rp.RoleId where g.SecurityGroupId == groupId && rp.PermisssionAccess > 0 select new { permission = rp.Permission, operation = rp.Permission.Operation, resource = rp.Permission.Securityresource, AccessType = rp.PermisssionAccess }).ToList(); foreach (var item in opRes) { var permission = PermissionRepository.GetDto(item.permission); var operatoin = item.operation; var resource = item.resource; permission.OperationDto = OperationRepository.GetDto(operatoin); permission.SecurityResourceDto = SecurityResourceRepository.GetDto(resource); permission.SecurityResourceDto.Checked = true; container.PermissionDtoList.Add(permission); // container.SecurityResourceDtoList.Add(permission.SecurityResourceDto); permission.SecurityResourceDto.Checked = true; if (item.AccessType == 0) { permission.AccessType = Common.Enums.AccessType.None; } if (item.AccessType == -1) { permission.AccessType = Common.Enums.AccessType.Deny; } if (item.AccessType == 1) { permission.AccessType = Common.Enums.AccessType.Access; permission.OperationDto.Checked = true; AddResources(permission.SecurityResourceDto, container.SecurityResourceDtoList); } } return(container); }
public PermissionDtoContainer GetAllRolePermissions(int roleId) { PermissionDtoContainer container = new PermissionDtoContainer(); ResourceTDataAccess rda = new ResourceTDataAccess(); var resources = rda.GetAll(); var permissions = this.GetAll(); container.PermissionDtoList.AddRange(permissions); container.SecurityResourceDtoList.AddRange(resources); var opRes = this.Repository.Context.PermissionToRoles.Where(it => it.RoleId == roleId).Select(x => new { permission = x.Permission, operation = x.Permission.Operation, resource = x.Permission.Securityresource, AccessType = x.PermisssionAccess }).ToList(); foreach (var item in opRes) { var permission = container.PermissionDtoList.FirstOrDefault(it => it.PermissionId == item.permission.PermissionId); var resource = item.resource; permission.SecurityResourceDto = SecurityResourceRepository.GetDto(resource); permission.SecurityResourceDto.Checked = true; if (item.AccessType == 0) { permission.AccessType = Common.Enums.AccessType.None; } if (item.AccessType == -1) { permission.AccessType = Common.Enums.AccessType.Deny; } if (item.AccessType == 1) { permission.AccessType = Common.Enums.AccessType.Access; permission.OperationDto.Checked = true; ChekckAll(container.SecurityResourceDtoList, resource.SecurityResourceId); } } return(container); }
public PermissionDtoContainer GetCurrentUserPermissions(long userId) { PermissionDtoContainer container = new PermissionDtoContainer(); SecurityUserTDataAccess userDa = new SecurityUserTDataAccess(); var opRes = this.Repository.Context.PermissionToUsers.Where(it => it.UserId == userId).Select(x => new { permission = x.Permission, operation = x.Permission.Operation, resource = x.Permission.Securityresource, AccessType = x.PermissionAccess }).ToList(); //TODO Make faster var opRoles = (from ur in this.Repository.Context.UserToRoles join pu in this.Repository.Context.PermissionToRoles on ur.RoleId equals pu.RoleId where ur.UserId == userId select new { permission = pu.Permission, operation = pu.Permission.Operation, resource = pu.Permission.Securityresource, AccessType = pu.PermisssionAccess, Role = ur.Role }).ToList(); var userGroups = userDa.GetUserGroupIds(userId); var opGroups = (from rg in this.Repository.Context.RoleToGroups join pr in this.Repository.Context.PermissionToRoles on rg.RoleId equals pr.RoleId where userGroups.Contains(rg.GroupId.Value) select new { permission = pr.Permission, operation = pr.Permission.Operation, resource = pr.Permission.Securityresource, AccessType = pr.PermisssionAccess, Group = rg.Securitygroup }).ToList(); foreach (var item in opRes) { var permission = PermissionRepository.GetDto(item.permission); var operatoin = item.operation; var resource = item.resource; permission.OperationDto = OperationRepository.GetDto(operatoin); permission.IsToUser = true; permission.SecurityResourceDto = SecurityResourceRepository.GetDto(resource); permission.SecurityResourceDto.Checked = true; container.PermissionDtoList.Add(permission); permission.SecurityResourceDto.Checked = true; if (item.AccessType == 0) { permission.AccessType = Common.Enums.AccessType.None; } if (item.AccessType == -1) { permission.AccessType = Common.Enums.AccessType.Deny; } if (item.AccessType == 1) { permission.AccessType = Common.Enums.AccessType.Access; permission.OperationDto.Checked = true; AddResources(permission.SecurityResourceDto, container.SecurityResourceDtoList); } } foreach (var item in opRoles) { var permission = PermissionRepository.GetDto(item.permission); var operatoin = item.operation; var resource = item.resource; permission.SecurityResourceDto = SecurityResourceRepository.GetDto(resource); permission.OperationDto = OperationRepository.GetDto(operatoin); if (permission != null) { if (permission.SecurityResourceDto == null) { permission.SecurityResourceDto = SecurityResourceRepository.GetDto(resource); permission.SecurityResourceDto.Checked = true; if (item.AccessType == 0) { permission.AccessType = Common.Enums.AccessType.None; } if (item.AccessType == -1) { permission.AccessType = Common.Enums.AccessType.Deny; } if (item.AccessType == 1) { permission.AccessType = Common.Enums.AccessType.Access; permission.OperationDto.Checked = true; ChekckAll(container.SecurityResourceDtoList, resource.SecurityResourceId); } } permission.RoleDtos.Add(RoleRepository.GetDto(item.Role)); } else { var permissionDto = PermissionRepository.GetDto(item.permission); permissionDto.RoleDtos.Add(RoleRepository.GetDto(item.Role)); container.PermissionDtoList.Add(permissionDto); } } foreach (var item in opGroups) { var permission = container.PermissionDtoList.FirstOrDefault(it => it.PermissionId == item.permission.PermissionId); if (permission != null) { if (permission.SecurityResourceDto == null) { var resource = item.resource; permission.SecurityResourceDto = SecurityResourceRepository.GetDto(resource); permission.SecurityResourceDto.Checked = true; if (item.AccessType == 0) { permission.AccessType = Common.Enums.AccessType.None; } if (item.AccessType == -1) { permission.AccessType = Common.Enums.AccessType.Deny; } if (item.AccessType == 1) { permission.AccessType = Common.Enums.AccessType.Access; permission.OperationDto.Checked = true; ChekckAll(container.SecurityResourceDtoList, resource.SecurityResourceId); } } permission.GroupDtos.Add(SecurityGroupRepository.GetDto(item.Group)); } else { var permissionDto = PermissionRepository.GetDto(item.permission); permissionDto.GroupDtos.Add(SecurityGroupRepository.GetDto(item.Group)); container.PermissionDtoList.Add(permissionDto); } } return(container); }