mirror of
https://github.com/opensim/opensim.git
synced 2026-08-11 03:45:35 +08:00
* Adds CreatorID to asset metadata. This is just the plumbing to support CreatorID, it doesn't modify database backends or OAR files to support storing/loading it
This commit is contained in:
@@ -197,7 +197,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
|
||||
private void Initialise(UUID fileID, string fileName)
|
||||
{
|
||||
m_asset = new AssetBase(fileID, fileName, type);
|
||||
m_asset = new AssetBase(fileID, fileName, type, UUID.Zero);
|
||||
m_asset.Data = new byte[0];
|
||||
m_asset.Description = "empty";
|
||||
m_asset.Local = true;
|
||||
@@ -212,6 +212,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||
|
||||
public void RequestStartXfer(IClientAPI pRemoteClient)
|
||||
{
|
||||
m_asset.Metadata.CreatorID = pRemoteClient.AgentId;
|
||||
|
||||
if (!String.IsNullOrEmpty(m_asset.Name))
|
||||
{
|
||||
pRemoteClient.SendXferRequest(mXferID, m_asset.Type, m_asset.FullID, 0, Utils.StringToBytes(m_asset.Name));
|
||||
|
||||
@@ -112,7 +112,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
|
||||
bool storeLocal, bool tempFile)
|
||||
{
|
||||
ourClient = remoteClient;
|
||||
m_asset = new AssetBase(assetID, "blank", type);
|
||||
m_asset = new AssetBase(assetID, "blank", type, remoteClient.AgentId);
|
||||
m_asset.Data = data;
|
||||
m_asset.Description = "empty";
|
||||
m_asset.Local = storeLocal;
|
||||
|
||||
@@ -240,7 +240,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
|
||||
{
|
||||
string assetID = "j2kCache_" + AssetId.ToString();
|
||||
|
||||
AssetBase layerDecodeAsset = new AssetBase(assetID, assetID, (sbyte)AssetType.Notecard);
|
||||
AssetBase layerDecodeAsset = new AssetBase(assetID, assetID, (sbyte)AssetType.Notecard, m_scene.RegionInfo.RegionID);
|
||||
layerDecodeAsset.Local = true;
|
||||
layerDecodeAsset.Temporary = true;
|
||||
|
||||
|
||||
@@ -416,7 +416,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||
|
||||
//m_log.DebugFormat("[INVENTORY ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType);
|
||||
|
||||
AssetBase asset = new AssetBase(new UUID(uuid), "RandomName", assetType);
|
||||
AssetBase asset = new AssetBase(new UUID(uuid), "RandomName", assetType, UUID.Zero);
|
||||
asset.Data = data;
|
||||
|
||||
m_scene.AssetService.Store(asset);
|
||||
|
||||
@@ -90,7 +90,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||
// HGAssetService dispatches it to the remote grid.
|
||||
// It's not pretty, but the best that can be done while
|
||||
// not having a global naming infrastructure
|
||||
AssetBase asset1 = new AssetBase(asset.FullID, asset.Name, asset.Type);
|
||||
AssetBase asset1 = new AssetBase(asset.FullID, asset.Name, asset.Type, asset.Metadata.CreatorID);
|
||||
Copy(asset, asset1);
|
||||
try
|
||||
{
|
||||
|
||||
@@ -161,7 +161,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||
}
|
||||
|
||||
AssetBase asset =
|
||||
CreateAsset(item.Name, item.Description, (sbyte)item.AssetType, data);
|
||||
CreateAsset(item.Name, item.Description, (sbyte)item.AssetType, data, remoteClient.AgentId);
|
||||
item.AssetID = asset.FullID;
|
||||
m_Scene.AssetService.Store(asset);
|
||||
|
||||
@@ -339,7 +339,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||
objectGroup.GetPartName(objectGroup.RootPart.LocalId),
|
||||
objectGroup.GetPartDescription(objectGroup.RootPart.LocalId),
|
||||
(sbyte)AssetType.Object,
|
||||
Utils.StringToBytes(sceneObjectXml));
|
||||
Utils.StringToBytes(sceneObjectXml),
|
||||
objectGroup.OwnerID);
|
||||
m_Scene.AssetService.Store(asset);
|
||||
assetID = asset.FullID;
|
||||
|
||||
@@ -640,9 +641,9 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||
/// <param name="assetType"></param>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data)
|
||||
private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data, UUID creatorID)
|
||||
{
|
||||
AssetBase asset = new AssetBase(UUID.Random(), name, assetType);
|
||||
AssetBase asset = new AssetBase(UUID.Random(), name, assetType, creatorID);
|
||||
asset.Description = description;
|
||||
asset.Data = (data == null) ? new byte[1] : data;
|
||||
|
||||
|
||||
@@ -309,7 +309,8 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture
|
||||
}
|
||||
|
||||
// Create a new asset for user
|
||||
AssetBase asset = new AssetBase(UUID.Random(), "DynamicImage" + Util.RandomClass.Next(1, 10000), (sbyte)AssetType.Texture);
|
||||
AssetBase asset = new AssetBase(UUID.Random(), "DynamicImage" + Util.RandomClass.Next(1, 10000), (sbyte)AssetType.Texture,
|
||||
scene.RegionInfo.RegionID);
|
||||
asset.Data = assetData;
|
||||
asset.Description = String.Format("URL image : {0}", Url);
|
||||
asset.Local = false;
|
||||
|
||||
@@ -335,7 +335,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
|
||||
//m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType);
|
||||
|
||||
AssetBase asset = new AssetBase(new UUID(uuid), String.Empty, assetType);
|
||||
AssetBase asset = new AssetBase(new UUID(uuid), String.Empty, assetType, UUID.Zero);
|
||||
asset.Data = data;
|
||||
|
||||
// We're relying on the asset service to do the sensible thing and not store the asset if it already
|
||||
|
||||
@@ -158,7 +158,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||
|
||||
m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename);
|
||||
|
||||
AssetBase asset = new AssetBase(new UUID(filename), metadata.Name, metadata.AssetType);
|
||||
AssetBase asset = new AssetBase(new UUID(filename), metadata.Name, metadata.AssetType, UUID.Zero);
|
||||
asset.Description = metadata.Description;
|
||||
asset.Data = data;
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||
|
||||
public EstateTerrainXferHandler(IClientAPI pRemoteClient, string pClientFilename)
|
||||
{
|
||||
m_asset = new AssetBase(UUID.Zero, pClientFilename, type);
|
||||
m_asset = new AssetBase(UUID.Zero, pClientFilename, type, pRemoteClient.AgentId);
|
||||
m_asset.Data = new byte[0];
|
||||
m_asset.Description = "empty";
|
||||
m_asset.Local = true;
|
||||
|
||||
@@ -1080,7 +1080,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
|
||||
AssetBase asset = new AssetBase(
|
||||
m_scene.RegionInfo.RegionSettings.TerrainImageID,
|
||||
"terrainImage_" + m_scene.RegionInfo.RegionID.ToString() + "_" + lastMapRefresh.ToString(),
|
||||
(sbyte)AssetType.Texture);
|
||||
(sbyte)AssetType.Texture,
|
||||
m_scene.RegionInfo.RegionID);
|
||||
asset.Data = data;
|
||||
asset.Description = m_scene.RegionInfo.RegionName;
|
||||
asset.Temporary = temporary;
|
||||
|
||||
@@ -384,7 +384,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation
|
||||
}
|
||||
}
|
||||
|
||||
AssetBase Animasset = new AssetBase(UUID.Random(), "Random Animation", (sbyte)AssetType.Animation);
|
||||
AssetBase Animasset = new AssetBase(UUID.Random(), "Random Animation", (sbyte)AssetType.Animation, m_scenePresence.UUID);
|
||||
Animasset.Data = anim.ToBytes();
|
||||
Animasset.Temporary = true;
|
||||
Animasset.Local = true;
|
||||
|
||||
@@ -192,7 +192,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
return new ArrayList();
|
||||
}
|
||||
|
||||
AssetBase asset = CreateAsset(item.Name, item.Description, (sbyte)AssetType.LSLText, data);
|
||||
AssetBase asset = CreateAsset(item.Name, item.Description, (sbyte)AssetType.LSLText, data, remoteClient.AgentId);
|
||||
AssetService.Store(asset);
|
||||
|
||||
if (isScriptRunning)
|
||||
@@ -570,15 +570,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
/// <summary>
|
||||
/// Create a new asset data structure.
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="description"></param>
|
||||
/// <param name="invType"></param>
|
||||
/// <param name="assetType"></param>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data)
|
||||
private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data, UUID creatorID)
|
||||
{
|
||||
AssetBase asset = new AssetBase(UUID.Random(), name, assetType);
|
||||
AssetBase asset = new AssetBase(UUID.Random(), name, assetType, creatorID);
|
||||
asset.Description = description;
|
||||
asset.Data = (data == null) ? new byte[1] : data;
|
||||
|
||||
@@ -704,7 +698,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
data = Encoding.ASCII.GetBytes(strdata);
|
||||
}
|
||||
|
||||
AssetBase asset = CreateAsset(name, description, assetType, data);
|
||||
AssetBase asset = CreateAsset(name, description, assetType, data, remoteClient.AgentId);
|
||||
AssetService.Store(asset);
|
||||
|
||||
CreateNewInventoryItem(remoteClient, remoteClient.AgentId.ToString(), folderID, asset.Name, 0, callbackID, asset, invType, nextOwnerMask, creationDate);
|
||||
@@ -1289,7 +1283,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
itemBase.InvType, part.UUID, remoteClient.AgentId))
|
||||
return;
|
||||
|
||||
AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType, Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}"));
|
||||
AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType,
|
||||
Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}"),
|
||||
remoteClient.AgentId);
|
||||
AssetService.Store(asset);
|
||||
|
||||
TaskInventoryItem taskItem = new TaskInventoryItem();
|
||||
@@ -1583,7 +1579,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
objectGroup.GetPartName(objectGroup.LocalId),
|
||||
objectGroup.GetPartDescription(objectGroup.LocalId),
|
||||
(sbyte)AssetType.Object,
|
||||
Utils.StringToBytes(sceneObjectXml));
|
||||
Utils.StringToBytes(sceneObjectXml),
|
||||
remoteClient.AgentId);
|
||||
AssetService.Store(asset);
|
||||
|
||||
item.AssetID = asset.FullID;
|
||||
@@ -1630,7 +1627,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
grp.GetPartName(grp.LocalId),
|
||||
grp.GetPartDescription(grp.LocalId),
|
||||
(sbyte)AssetType.Object,
|
||||
Utils.StringToBytes(sceneObjectXml));
|
||||
Utils.StringToBytes(sceneObjectXml),
|
||||
remoteClient.AgentId);
|
||||
AssetService.Store(asset);
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase();
|
||||
|
||||
@@ -4389,7 +4389,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
group.GetPartName(localID),
|
||||
group.GetPartDescription(localID),
|
||||
(sbyte)AssetType.Object,
|
||||
Utils.StringToBytes(sceneObjectXml));
|
||||
Utils.StringToBytes(sceneObjectXml),
|
||||
group.OwnerID);
|
||||
AssetService.Store(asset);
|
||||
|
||||
InventoryItemBase item = new InventoryItemBase();
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
|
||||
TestHelper.InMethod();
|
||||
|
||||
UUID corruptAssetUuid = UUID.Parse("00000000-0000-0000-0000-000000000666");
|
||||
AssetBase corruptAsset = AssetHelpers.CreateAsset(corruptAssetUuid, "CORRUPT ASSET");
|
||||
AssetBase corruptAsset = AssetHelpers.CreateAsset(corruptAssetUuid, "CORRUPT ASSET", UUID.Zero);
|
||||
m_assetService.Store(corruptAsset);
|
||||
|
||||
IDictionary<UUID, int> foundAssetUuids = new Dictionary<UUID, int>();
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
|
||||
|
||||
public UUID SaveBitmap(Bitmap data, bool lossless, bool temporary)
|
||||
{
|
||||
AssetBase asset = new AssetBase(UUID.Random(), "MRMDynamicImage", (sbyte)AssetType.Texture);
|
||||
AssetBase asset = new AssetBase(UUID.Random(), "MRMDynamicImage", (sbyte)AssetType.Texture, m_scene.RegionInfo.RegionID);
|
||||
asset.Data = OpenJPEG.EncodeFromImage(data, lossless);
|
||||
asset.Description = "MRM Image";
|
||||
asset.Local = false;
|
||||
|
||||
@@ -1474,7 +1474,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
m_host.AddScriptLPS(1);
|
||||
|
||||
// Create new asset
|
||||
AssetBase asset = new AssetBase(UUID.Random(), notecardName, (sbyte)AssetType.Notecard);
|
||||
AssetBase asset = new AssetBase(UUID.Random(), notecardName, (sbyte)AssetType.Notecard, m_host.OwnerID);
|
||||
asset.Description = "Script Generated Notecard";
|
||||
string notecardData = String.Empty;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user