diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs index 008465f..0456852 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/HGAssetBroker.cs | |||
@@ -56,6 +56,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | |||
56 | 56 | ||
57 | private bool m_Enabled = false; | 57 | private bool m_Enabled = false; |
58 | 58 | ||
59 | private AssetPermissions m_AssetPerms; | ||
60 | |||
59 | public Type ReplaceableInterface | 61 | public Type ReplaceableInterface |
60 | { | 62 | { |
61 | get { return null; } | 63 | get { return null; } |
@@ -128,6 +130,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | |||
128 | if (m_LocalAssetServiceURI != string.Empty) | 130 | if (m_LocalAssetServiceURI != string.Empty) |
129 | m_LocalAssetServiceURI = m_LocalAssetServiceURI.Trim('/'); | 131 | m_LocalAssetServiceURI = m_LocalAssetServiceURI.Trim('/'); |
130 | 132 | ||
133 | IConfig hgConfig = source.Configs["HGAssetService"]; | ||
134 | m_AssetPerms = new AssetPermissions(hgConfig); | ||
135 | |||
131 | m_Enabled = true; | 136 | m_Enabled = true; |
132 | m_log.Info("[HG ASSET CONNECTOR]: HG asset broker enabled"); | 137 | m_log.Info("[HG ASSET CONNECTOR]: HG asset broker enabled"); |
133 | } | 138 | } |
@@ -206,14 +211,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | |||
206 | asset = m_HGService.Get(id); | 211 | asset = m_HGService.Get(id); |
207 | if (asset != null) | 212 | if (asset != null) |
208 | { | 213 | { |
209 | // Now store it locally | 214 | // Now store it locally, if allowed |
210 | // For now, let me just do it for textures and scripts | 215 | if (m_AssetPerms.AllowedImport(asset.Type)) |
211 | if (((AssetType)asset.Type == AssetType.Texture) || | ||
212 | ((AssetType)asset.Type == AssetType.LSLBytecode) || | ||
213 | ((AssetType)asset.Type == AssetType.LSLText)) | ||
214 | { | ||
215 | m_GridService.Store(asset); | 216 | m_GridService.Store(asset); |
216 | } | 217 | else |
218 | return null; | ||
217 | } | 219 | } |
218 | } | 220 | } |
219 | else | 221 | else |
@@ -328,7 +330,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset | |||
328 | 330 | ||
329 | string id = string.Empty; | 331 | string id = string.Empty; |
330 | if (IsHG(asset.ID)) | 332 | if (IsHG(asset.ID)) |
331 | id = m_HGService.Store(asset); | 333 | { |
334 | if (m_AssetPerms.AllowedExport(asset.Type)) | ||
335 | id = m_HGService.Store(asset); | ||
336 | else | ||
337 | return String.Empty; | ||
338 | } | ||
332 | else | 339 | else |
333 | id = m_GridService.Store(asset); | 340 | id = m_GridService.Store(asset); |
334 | 341 | ||