コード例 #1
0
 public bool HasAccess(AreaAccess area)
 {
     if (!areas.ContainsKey(area))
     {
         return(false);
     }
     return(areas[area]);
 }
コード例 #2
0
 public void SetAccess(AreaAccess area, bool beingAdded = true)
 {
     if (areas.ContainsKey(area))
     {
         areas[area] = beingAdded;
     }
     else
     {
         areas.Add(area, beingAdded);
     }
 }
コード例 #3
0
        public void OnActionExecuting_Area_UnauthorizedResult
            (ModeEnum mode)
        {
            // Arrange

            var filter = new AuthorizeFilter
                             (AreaEnum.Customer, mode);

            var access = new AreaAccess
            {
                AreaId = (int)AreaEnum.Customer,
                Group  = new Group
                {
                    Name       = "Test",
                    UserGroups = new[]
                    {
                        new UserGroup
                        {
                            UserId = AccountTicket.Id
                        }
                    }
                },
                CanRead = true
            };

            DbContext.AreaAccess.Add(access);

            DbContext.SaveChanges();

            Controller = new CustomerController(null)
            {
                AccountService = AccountService,

                AccountTicket = AccountTicket
            };

            var actionExecutingContext =
                MockHelper.ActionExecutingContext(Controller);

            // Act

            filter.OnActionExecuting(actionExecutingContext);

            // Assert

            Assert.IsNotNull(actionExecutingContext.Result);

            Assert.IsInstanceOf <UnauthorizedResult>
                (actionExecutingContext.Result);
        }
コード例 #4
0
        public void OnActionExecuting_Area(ModeEnum mode)
        {
            // Arrange

            var filter = new AuthorizeFilter
                             (AreaEnum.Customer, mode);

            var access = new AreaAccess
            {
                AreaId = (int)AreaEnum.Customer,
                Group  = new Group
                {
                    Name       = "Test",
                    UserGroups = new[]
                    {
                        new UserGroup
                        {
                            UserId = AccountTicket.Id
                        }
                    }
                },
                CanRead   = mode.HasFlag(ModeEnum.Read),
                CanCreate = mode.HasFlag(ModeEnum.Create),
                CanModify = mode.HasFlag(ModeEnum.Modify),
                CanDelete = mode.HasFlag(ModeEnum.Delete)
            };

            DbContext.AreaAccess.Add(access);

            DbContext.SaveChanges();

            Controller = new CustomerController(null)
            {
                AccountService = AccountService,

                AccountTicket = AccountTicket
            };

            var actionExecutingContext =
                MockHelper.ActionExecutingContext(Controller);

            // Act

            filter.OnActionExecuting(actionExecutingContext);

            // Assert

            Assert.IsNull(actionExecutingContext.Result);
        }