From e37637587a1d23179442c3aa80e7461c5451ad8f Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Thu, 25 Sep 2014 22:03:02 +0200 Subject: [PATCH] Add a sample use for the validation --- .../Agent/AssetTransaction/AssetXferUploader.cs | 16 ++++++++++++++++ .../Avatar/Animations/AnimationsCommandModule.cs | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs index 056983611e..fe60c9038a 100644 --- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs +++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs @@ -454,6 +454,22 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction private void ValidateAssets() { + if (m_asset.Type == (sbyte)CustomAssetType.AnimationSet) + { + AnimationSet animSet = new AnimationSet(m_asset.Data); + + bool allOk = animSet.Validate(x => { + int perms = m_Scene.InventoryService.GetAssetPermissions(ourClient.AgentId, x); + int required = (int)(PermissionMask.Transfer | PermissionMask.Copy); + if ((perms & required) != required) + return false; + return true; + }); + + if (!allOk) + m_asset.Data = animSet.ToBytes(); + } + if (m_asset.Type == (sbyte)AssetType.Clothing || m_asset.Type == (sbyte)AssetType.Bodypart) { diff --git a/OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs b/OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs index 84211a9ba9..5c45e4ddbb 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Animations/AnimationsCommandModule.cs @@ -42,6 +42,7 @@ using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes.Animation; using OpenSim.Services.Interfaces; +using AnimationSet = OpenSim.Region.Framework.Scenes.Animation.AnimationSet; namespace OpenSim.Region.OptionalModules.Avatar.Animations { @@ -197,4 +198,4 @@ namespace OpenSim.Region.OptionalModules.Avatar.Animations sb.Append("\n"); } } -} \ No newline at end of file +}