/// <summary>
 /// Checks the result of this permission.
 /// </summary>
 /// <param name="permission">The permission to check.</param>
 /// <param name="manager"></param>
 /// <returns>The security right.</returns>
 public virtual SecurityRight CheckPermission(ISecurityManager manager, SecurityPermission permission)
 {
     if (string.IsNullOrEmpty(refId))
     {
         return(CheckPermissionActual(manager, permission));
     }
     else
     {
         IPermission refPermission = manager.RetrievePermission(refId);
         if (refPermission == null)
         {
             throw new BadReferenceException(refId);
         }
         else
         {
             return(refPermission.CheckPermission(manager, permission));
         }
     }
 }
Пример #2
0
        public void CheckPermissionWithValidReference()
        {
            SecurityPermission permission    = SecurityPermission.ForceAbortBuild;
            string             goodReference = "doesExist";
            IPermission        goodAssertion = mocks.StrictMock <IPermission>();
            ISecurityManager   manager       = mocks.StrictMock <ISecurityManager>();

            Expect.Call(manager.RetrievePermission(goodReference)).Return(goodAssertion);
            Expect.Call(goodAssertion.CheckPermission(manager, permission)).Return(SecurityRight.Allow);

            mocks.ReplayAll();
            UserPermission assertion = new UserPermission();

            assertion.RefId = goodReference;
            SecurityRight result = assertion.CheckPermission(manager, permission);

            Assert.AreEqual(SecurityRight.Allow, result);
            mocks.VerifyAll();
        }