/// <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); }
/// <exclude /> public static void RemoveUserPermissionDefinition(UserToken userToken, EntityToken entityToken) { if (userToken == null) { throw new ArgumentNullException("userToken"); } if (entityToken == null) { throw new ArgumentNullException("entityToken"); } if ((entityToken is NoSecurityEntityToken)) { return; } if (!UserPermissionDefinitionProviderPluginFacade.CanAlterDefinitions) { throw new InvalidOperationException("The user permission definition provider does not support altering user permission defintions"); } string serializedEntityToken = EntityTokenSerializer.Serialize(entityToken); EntityTokenCacheFacade.ClearCache(); UserPermissionDefinitionProviderPluginFacade.RemoveUserPermissionDefinition(userToken, serializedEntityToken); }
/// <exclude /> public static IEnumerable <UserPermissionDefinition> GetUserPermissionDefinitions(string username) { Verify.ArgumentNotNullOrEmpty(username, "username"); IEnumerable <UserPermissionDefinition> userPermissionDefinitions = UserPermissionDefinitionProviderPluginFacade.GetPermissionsByUser(username); var result = new List <UserPermissionDefinition>(); foreach (UserPermissionDefinition userPermissionDefinition in userPermissionDefinitions) { EntityToken entityToken = userPermissionDefinition.EntityToken; if (entityToken == null) { continue; } if (!entityToken.IsValid()) { if (UserPermissionDefinitionProviderPluginFacade.CanAlterDefinitions) { Log.LogWarning("PermissionTypeFacade", "System removing invalid permission setting for user '{0}' because the data entity token could not be validated. Token was '{1}'.", username, userPermissionDefinition.SerializedEntityToken); UserPermissionDefinitionProviderPluginFacade.RemoveUserPermissionDefinition(new UserToken(username), userPermissionDefinition.SerializedEntityToken); } continue; } result.Add(userPermissionDefinition); } return(result); }