コード例 #1
0
 public SaleOrdersController(AlpsContext context)
 {
     _context = context;
 }
コード例 #2
0
 public WarehouseVoucherApiController()
 {
     unitOfWork = new AlpsContext();
     warehouseVoucherAS = new WarehouseVoucherAppService(unitOfWork);
 }
コード例 #3
0
 public StockOutVouchersController(AlpsContext context, StockService stockService)
 {
     this._context      = context;
     this._stockService = stockService;
 }
コード例 #4
0
 public CustomersController(AlpsContext context)
 {
     _context = context;
 }
コード例 #5
0
 public LogisticsController(AlpsContext context)
 {
     this._context = context;
 }
コード例 #6
0
 public CatagoryApiController()
 {
     unitOfWork = new AlpsContext();
     catagoryService = new CatagoryService(unitOfWork);
 }
コード例 #7
0
 public PurchaseOrdersController(AlpsContext context)
 {
     this._context = context;
 }
コード例 #8
0
ファイル: PurchaseMgrService.cs プロジェクト: YosengTech/Alps
 public PurchaseMgrService(AlpsContext db)
 {
     this.db = db;
 }
コード例 #9
0
        public async Task Invoke(HttpContext context, AlpsContext dbContext)
        {
            var endpoint      = context.GetEndpoint();
            var authorizeData = endpoint?.Metadata.GetOrderedMetadata <IAuthorizeData>() ?? Array.Empty <IAuthorizeData>();

            // 如果没有 [Authorize] 就不需要拦截
            if (authorizeData == null || authorizeData.Count == 0)
            {
                await _next(context);

                return;
            }

            // 如果有 [AllowAnonymous],那也不需要拦截
            if (endpoint?.Metadata.GetMetadata <IAllowAnonymous>() != null)
            {
                await _next(context);

                return;
            }
            if (context.User.IsInRole("Admin"))
            {
                await _next(context);

                return;
            }
            var controllerName = endpoint.Metadata.GetMetadata <ControllerActionDescriptor>().ControllerName;
            var actionName     = endpoint.Metadata.GetMetadata <ControllerActionDescriptor>().ActionName;
            var userName       = context.User.Identity.Name;


            var query = await(
                dbContext.AlpsUsers.Include(p => p.RoleUsers).ThenInclude(p => p.Role).ThenInclude(p => p.Permissions).ThenInclude(p => p.Resource)
                .AnyAsync(p => p.RoleUsers.Any(l => l.Role.Permissions.Any(k => k.Resource.Controller == controllerName && k.Resource.Action == actionName))));

            /*
             * from u in dbContext.AlpsUsers.Include(p=>p.RoleUsers).ThenInclude(p=>p.Role).ThenInclude(p=>p.Permissions).ThenInclude(p=>p.Resource)
             *
             * from r in dbContext.AlpsResources
             * where r.Permissions.
             * // from role in dbContext.AlpsRoles
             * where u.IDName == userName && u.RoleUsers. &&
             * (from r in dbContext.AlpsResources
             * join p in dbContext.Permissions on r.ID equals p.ResourceID
             * where r.Controller == controllerName && r.Action == actionName
             * select p.RoleID).Contains(role.ID)
             * select u.ID).CountAsync();
             */
            if (!query)
            {
                if (context.User.Identity.IsAuthenticated)
                {
                    context.Response.StatusCode = 403;
                    context.Response.Headers.Add("WWW-Authenticate", new Microsoft.Extensions.Primitives.StringValues("Login authorization failed"));
                    return;
                }
                else
                {
                    context.Response.StatusCode = 401;
                    context.Response.Headers.Add("WWW-Authenticate", new Microsoft.Extensions.Primitives.StringValues("Login authentication failed"));
                    return;
                }
            }

            await _next(context);

            return;
        }
コード例 #10
0
ファイル: ProductMgrService.cs プロジェクト: YosengTech/Alps
 public ProductMgrService(AlpsContext db)
 {
     this.db = db;
 }
コード例 #11
0
ファイル: SaleService.cs プロジェクト: YosengWinsan/Alps6
 public SaleService(AlpsContext context)
 {
     this._context = context;
 }
コード例 #12
0
ファイル: StockService.cs プロジェクト: YosengTech/Alps
 public StockService(AlpsContext db)
 {
     this.db = db;
 }
コード例 #13
0
ファイル: ProductService.cs プロジェクト: YosengWinsan/Alps6
 public ProductService(AlpsContext context)
 {
     this._context = context;
 }
コード例 #14
0
 public LendersController(AlpsContext context)
 {
     _context = context;
 }
コード例 #15
0
 public ProductsController(AlpsContext context)
 {
     _context = context;
 }
コード例 #16
0
 public StockService(AlpsContext context)
 {
     this._context = context;
 }
コード例 #17
0
 public CommoditiesController(AlpsContext context)
 {
     _context = context;
 }
コード例 #18
0
ファイル: SaleMgrAppService.cs プロジェクト: YosengTech/Alps
 public SaleMgrAppService(AlpsContext db)
 {
     this.db = db;
 }
コード例 #19
0
 public QueryController(AlpsContext context)
 {
     _context = context;
 }
コード例 #20
0
 public TradeAccountsController(AlpsContext context)
 {
     this._context = context;
 }
コード例 #21
0
 public StocksController(AlpsContext context)
 {
     _context = context;
 }
コード例 #22
0
 public PositionsController(AlpsContext context)
 {
     this._context = context;
 }
コード例 #23
0
ファイル: AuthController.cs プロジェクト: YosengWinsan/Alps6
 public AuthController(AlpsContext context, AlpsJwtOption jwtOption)
 {
     this._context   = context;
     this._jwtOption = jwtOption;
 }
コード例 #24
0
 public SuppliersController(AlpsContext context)
 {
     _context = context;
 }
コード例 #25
0
ファイル: AddressService.cs プロジェクト: YosengWinsan/Alps6
 public AddressService(AlpsContext context)
 {
     this._context = context;
 }
コード例 #26
0
ファイル: UsersController.cs プロジェクト: YosengWinsan/Alps6
 public UsersController(AlpsContext context, IActionDescriptorCollectionProvider actionProvider)
 {
     _context        = context;
     _actionProvider = actionProvider;
 }
コード例 #27
0
 public StockInVouchersController(AlpsContext context, StockService stockService)
 {
     this._context      = context;
     this._stockService = stockService;
     //this._context.Database.Log = (s) => Console.WriteLine(s);
 }
コード例 #28
0
ファイル: UnitsController.cs プロジェクト: YosengWinsan/Alps6
 public UnitsController(AlpsContext context)
 {
     _context = context;
 }
コード例 #29
0
 public CatagoriesController(AlpsContext context)
 {
     this._context = context;
 }
コード例 #30
0
 public LoanVouchersController(AlpsContext context)
 {
     _context = context;
 }