コード例 #1
0
        public bool HasPropertyReadAccess(ISecurableObject securableObject, string propertyName, ISecurityPrincipal principal)
        {
            ArgumentUtility.CheckNotNull("securableObject", securableObject);
            ArgumentUtility.CheckNotNullOrEmpty("propertyName", propertyName);
            ArgumentUtility.DebugCheckNotNull("principal", principal);

            var methodInformation = _memberResolver.GetMethodInformation(securableObject.GetSecurableType(), "get_" + propertyName, MemberAffiliation.Instance);

            return(HasPropertyReadAccess(securableObject, methodInformation, principal));
        }
コード例 #2
0
        public bool HasPropertyWriteAccess(ISecurableObject securableObject, MethodInfo methodInfo, ISecurityPrincipal principal)
        {
            ArgumentUtility.CheckNotNull("securableObject", securableObject);
            ArgumentUtility.CheckNotNull("methodInfo", methodInfo);
            ArgumentUtility.DebugCheckNotNull("principal", principal);

            var methodInformation = _memberResolver.GetMethodInformation(securableObject.GetSecurableType(), methodInfo, MemberAffiliation.Instance);

            return(HasPropertyWriteAccess(securableObject, methodInformation, principal));
        }
コード例 #3
0
        public void GetSecurableType()
        {
            OrganizationalStructureTestHelper testHelper = new OrganizationalStructureTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                ISecurableObject position = testHelper.CreatePosition("PositionName");

                Assert.That(position.GetSecurableType(), Is.SameAs(typeof(Position)));
            }
        }
コード例 #4
0
        public void CheckPropertyWriteAccess(ISecurableObject securableObject, IMethodInformation methodInformation, ISecurityPrincipal principal)
        {
            ArgumentUtility.DebugCheckNotNull("securableObject", securableObject);
            ArgumentUtility.DebugCheckNotNull("methodInformation", methodInformation);
            ArgumentUtility.DebugCheckNotNull("principal", principal);

            if (!HasPropertyWriteAccess(securableObject, methodInformation, principal))
            {
                ArgumentUtility.CheckNotNull("securableObject", securableObject);
                ArgumentUtility.CheckNotNull("methodInformation", methodInformation);

                throw CreatePermissionDeniedException(
                          "Access to set-accessor of property '{0}' on type '{1}' has been denied.",
                          methodInformation.Name,
                          securableObject.GetSecurableType().FullName);
            }
        }
コード例 #5
0
        public void CheckPropertyReadAccess(ISecurableObject securableObject, string propertyName, ISecurityPrincipal principal)
        {
            ArgumentUtility.DebugCheckNotNull("securableObject", securableObject);
            ArgumentUtility.DebugCheckNotNullOrEmpty("propertyName", propertyName);
            ArgumentUtility.DebugCheckNotNull("principal", principal);

            if (!HasPropertyReadAccess(securableObject, propertyName, principal))
            {
                ArgumentUtility.CheckNotNull("securableObject", securableObject);
                ArgumentUtility.CheckNotNullOrEmpty("propertyName", propertyName);

                throw CreatePermissionDeniedException(
                          "Access to method '{0}' on type '{1}' has been denied.",
                          propertyName,
                          securableObject.GetSecurableType().FullName);
            }
        }
コード例 #6
0
        public virtual bool HasPropertyWriteAccess(ISecurableObject securableObject, IMethodInformation methodInformation, ISecurityPrincipal principal)
        {
            ArgumentUtility.CheckNotNull("securableObject", securableObject);
            ArgumentUtility.CheckNotNull("methodInformation", methodInformation);
            ArgumentUtility.DebugCheckNotNull("principal", principal);

            var requiredAccessTypeEnums = _permissionProvider.GetRequiredMethodPermissions(securableObject.GetSecurableType(), methodInformation);

            Assertion.DebugIsNotNull(requiredAccessTypeEnums, "IPermissionProvider.GetRequiredMethodPermissions evaluated and returned null.");

            if (requiredAccessTypeEnums.Count == 0)
            {
                requiredAccessTypeEnums = s_editAccessTypeEnumAsArray;
            }

            return(HasAccess(securableObject, methodInformation, requiredAccessTypeEnums, principal));
        }
コード例 #7
0
        public void CheckMethodAccess(ISecurableObject securableObject, MethodInfo methodInfo, ISecurityPrincipal principal)
        {
            ArgumentUtility.DebugCheckNotNull("securableObject", securableObject);
            ArgumentUtility.DebugCheckNotNull("methodInfo", methodInfo);
            ArgumentUtility.DebugCheckNotNull("principal", principal);

            if (!HasMethodAccess(securableObject, methodInfo, principal))
            {
                ArgumentUtility.CheckNotNull("securableObject", securableObject);
                ArgumentUtility.CheckNotNull("methodInfo", methodInfo);

                throw CreatePermissionDeniedException(
                          "Access to method '{0}' on type '{1}' has been denied.", methodInfo.Name, securableObject.GetSecurableType().FullName);
            }
        }
コード例 #8
0
        public void GetSecurableType()
        {
            ISecurableObject tenant = TestHelper.CreateTenant("Tenant", "UID: Tenant");

            Assert.That(tenant.GetSecurableType(), Is.SameAs(typeof(Tenant)));
        }
コード例 #9
0
        public void GetSecurableType()
        {
            ISecurableObject user = CreateUser();

            Assert.That(user.GetSecurableType(), Is.SameAs(typeof(User)));
        }