Ejemplo n.º 1
0
        /// <exclude />
        public static void SetUserPermissionDefinition(UserPermissionDefinition userPermissionDefinition)
        {
            if (userPermissionDefinition == null)
            {
                throw new ArgumentNullException("userPermissionDefinition");
            }

            if (userPermissionDefinition.EntityToken is NoSecurityEntityToken)
            {
                return;
            }

            if (userPermissionDefinition.PermissionTypes.Contains(PermissionType.ClearPermissions) &&
                userPermissionDefinition.PermissionTypes.Count() > 1)
            {
                throw new ArgumentException(string.Format("The permission type '{0}' may not be used with other permission types", PermissionType.ClearPermissions));
            }

            if (!UserPermissionDefinitionProviderPluginFacade.CanAlterDefinitions)
            {
                throw new InvalidOperationException("The user permission definition provider does not support altering user permission defintions");
            }

            EntityTokenCacheFacade.ClearCache();

            UserPermissionDefinitionProviderPluginFacade.SetUserPermissionDefinition(userPermissionDefinition);
        }