Example #1
0
 public ApiService(IRepository <ApiEntity, Guid> apiRepository,
                   IPermissionCacheService permissionCacheService,
                   IUnitOfWork <BaseIdentityDbContext> unitOfWork)
 {
     _apiRepository          = apiRepository;
     _permissionCacheService = permissionCacheService;
     _unitOfWork             = unitOfWork;
 }
Example #2
0
 public ElementService(IRepository <Ele, Guid> elementRepository,
                       IRepository <EleTree, Guid> elementTreeRepository,
                       IRepository <ElementApi, Guid> elementApiRepository,
                       IUnitOfWork <BaseIdentityDbContext> unitOfWork,
                       IPermissionCacheService permissionCacheService,
                       IMapper mapper)
 {
     _elementRepository      = elementRepository;
     _elementTreeRepository  = elementTreeRepository;
     _elementApiRepository   = elementApiRepository;
     _unitOfWork             = unitOfWork;
     _permissionCacheService = permissionCacheService;
     _mapper = mapper;
 }
Example #3
0
 public AccountController(IJwtFactory jwtFactory,
                          IAccountService accountService,
                          IUserService userService,
                          IRoleService roleService,
                          IRuleService ruleService,
                          IPermissionCacheService permissionCacheService,
                          IMemoryCache memoryCache)
 {
     _jwtFactory             = jwtFactory;
     _accountService         = accountService;
     _userService            = userService;
     _roleService            = roleService;
     _ruleService            = ruleService;
     _permissionCacheService = permissionCacheService;
     _memoryCache            = memoryCache;
 }
Example #4
0
 public RoleService(RoleManager <BaseIdentityRole> roleManager,
                    IRepository <ElementEntity, Guid> elementRepository,
                    IRepository <ElementTree, Guid> elementTreeRepository,
                    IRepository <ElementApi, Guid> elementApiRepository,
                    IRepository <ApiEntity, Guid> apiRepository,
                    IPermissionCacheService permissionCacheService,
                    IMemoryCache memoryCache,
                    IMapper mapper)
 {
     _roleManager            = roleManager;
     _elementRepository      = elementRepository;
     _elementTreeRepository  = elementTreeRepository;
     _elementApiRepository   = elementApiRepository;
     _apiRepository          = apiRepository;
     _permissionCacheService = permissionCacheService;
     _memoryCache            = memoryCache;
     _mapper = mapper;
 }
Example #5
0
        public BaseRepository(IHttpContextAccessor httpContextAccessor, IMemoryCache memoryCache, IPermissionCacheService permissionCacheService)
        {
            _context = httpContextAccessor.HttpContext.RequestServices.GetService <TDbContext>();

            _dataSet = _context.Set <TEntity>();

            var userName = httpContextAccessor.HttpContext.User.GetClaimValue(CustomClaimTypes.UserName);

            if (!string.IsNullOrEmpty(userName))
            {
                // 表达式合集
                var expressionList = new List <LambdaExpression>();

                // 取得用户的数据规则
                var permissions = permissionCacheService.GetRuleAsync(typeof(TDbContext).Name, typeof(TEntity).Name).Result;

                // 所有规则组
                foreach (var groupRuleStr in permissions)
                {
                    // 表达式反序列化
                    var serializer = new ExpressionSerializer(new JsonSerializer());
                    serializer.AddKnownType(typeof(Core.Expressions.ExpressionType));
                    var lambda = (LambdaExpression)serializer.DeserializeText(groupRuleStr);
                    expressionList.Add(lambda);
                }

                // 连接lambda表达式生成统一条件
                if (expressionList.Count > 0)
                {
                    _condition = (Expression <Func <TEntity, bool> >)(new ExpressionUtil <TEntity>()
                                                                      .JoinLambdaExpression(expressionList, ExpressionCombineType.And));
                }
            }
        }
Example #6
0
 public ApiAuthorizationHandler(IMemoryCache memoryCache,
                                IPermissionCacheService permissionCacheService)
 {
     _memoryCache            = memoryCache;
     _permissionCacheService = permissionCacheService;
 }
Example #7
0
        public BaseRepository(IHttpContextAccessor httpContextAccessor, IMemoryCache memoryCache, IPermissionCacheService permissionCacheService)
        {
            _context = httpContextAccessor.HttpContext.RequestServices.GetService <TDbContext>();

            _dataSet = _context.Set <TEntity>();

            var userName  = httpContextAccessor.HttpContext.User.Claims.FirstOrDefault(c => c.Type == CustomClaimTypes.UserName)?.Value;
            var userRoles = httpContextAccessor.HttpContext.User.GetClaimValue(CustomClaimTypes.Role).Split(',', StringSplitOptions.RemoveEmptyEntries);

            if (!string.IsNullOrEmpty(userName))
            {
                // 表达式合集
                var expressionList = new List <LambdaExpression>();

                // 取得用户的数据规则
                var permissions = permissionCacheService.GetUserRuleAsync(userName, userRoles).Result;

                // 所有规则组
                foreach (var group in permissions)
                {
                    // 找到符合当前实体的规则
                    var items = group.Split('|');
                    if (items[0] == typeof(TDbContext).Name && items[1] == typeof(TEntity).Name)
                    {
                        // 表达式反序列化
                        var serializer = new ExpressionSerializer(new JsonSerializer());
                        serializer.AddKnownType(typeof(Core.Expressions.ExpressionType));
                        var lambda = (LambdaExpression)serializer.DeserializeText(items[2]);
                        expressionList.Add(lambda);
                    }
                }

                // 连接lambda表达式生成统一条件
                if (expressionList.Count > 0)
                {
                    _condition = (Expression <Func <TEntity, bool> >)(new ExpressionUtil <TEntity>()
                                                                      .JoinLambdaExpression(expressionList, ExpressionCombineType.And));
                }
            }
        }
Example #8
0
 public PermissionService(INigelDbRepository db, IMapper mapper, IPermissionCacheService permissionCacheService)
 {
     this.db     = db;
     this.mapper = mapper;
     this.permissionCacheService = permissionCacheService;
 }
Example #9
0
 public ApiAuthorizationHandler(IHttpContextAccessor httpContextAccessor,
                                IPermissionCacheService permissionCacheService)
 {
     _httpContextAccessor    = httpContextAccessor;
     _permissionCacheService = permissionCacheService;
 }