Modifications to previous IAR commits to bring them more inline with existing OpenSim code conventions. Also include new IAR save switch in console help print out.
parent
5bc3bbbcf3
commit
1e22091193
|
@ -57,7 +57,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
public bool SaveAssets { get; set; }
|
public bool SaveAssets { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Determine whether this archive will filter content based on inventory permissions. Default is false
|
/// Determines which items will be included in the archive, according to their permissions.
|
||||||
|
/// Default is null, meaning no permission checks.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string FilterContent { get; set; }
|
public string FilterContent { get; set; }
|
||||||
|
|
||||||
|
@ -139,7 +140,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
m_assetGatherer = new UuidGatherer(m_scene.AssetService);
|
m_assetGatherer = new UuidGatherer(m_scene.AssetService);
|
||||||
|
|
||||||
SaveAssets = true;
|
SaveAssets = true;
|
||||||
FilterContent = string.Empty;
|
FilterContent = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ReceivedAllAssets(ICollection<UUID> assetsFoundUuids, ICollection<UUID> assetsNotFoundUuids, bool timedOut)
|
protected void ReceivedAllAssets(ICollection<UUID> assetsFoundUuids, ICollection<UUID> assetsNotFoundUuids, bool timedOut)
|
||||||
|
@ -287,7 +288,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
/// <returns>Whether the user is allowed to export the object to an IAR</returns>
|
/// <returns>Whether the user is allowed to export the object to an IAR</returns>
|
||||||
private bool CanUserArchiveObject(UUID UserID, InventoryItemBase InvItem)
|
private bool CanUserArchiveObject(UUID UserID, InventoryItemBase InvItem)
|
||||||
{
|
{
|
||||||
if (FilterContent == string.Empty)
|
if (FilterContent == null)
|
||||||
return true;// Default To Allow Export
|
return true;// Default To Allow Export
|
||||||
|
|
||||||
bool permitted = true;
|
bool permitted = true;
|
||||||
|
@ -317,10 +318,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
SaveAssets = false;
|
SaveAssets = false;
|
||||||
|
|
||||||
// Set Permission filter if flag is set
|
// Set Permission filter if flag is set
|
||||||
if (options.ContainsKey("perm"))
|
if (options.ContainsKey("checkPermissions"))
|
||||||
{
|
{
|
||||||
Object temp;
|
Object temp;
|
||||||
if (options.TryGetValue("perm", out temp))
|
if (options.TryGetValue("checkPermissions", out temp))
|
||||||
FilterContent = temp.ToString().ToUpper();
|
FilterContent = temp.ToString().ToUpper();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
+ "-e|--exclude=<name/uuid> don't save the inventory item in archive" + Environment.NewLine
|
+ "-e|--exclude=<name/uuid> don't save the inventory item in archive" + Environment.NewLine
|
||||||
+ "-f|--excludefolder=<folder/uuid> don't save contents of the folder in archive" + Environment.NewLine
|
+ "-f|--excludefolder=<folder/uuid> don't save contents of the folder in archive" + Environment.NewLine
|
||||||
+ "-v|--verbose extra debug messages.\n"
|
+ "-v|--verbose extra debug messages.\n"
|
||||||
+ "--noassets stops assets being saved to the IAR.",
|
+ "--noassets stops assets being saved to the IAR."
|
||||||
|
+ "--perm=<permissions> stops items with insufficient permissions from being saved to the IAR.\n"
|
||||||
|
+ " <permissions> can contain one or more of these characters: \"C\" = Copy, \"T\" = Transfer, \"M\" = Modify.\n",
|
||||||
HandleSaveInvConsoleCommand);
|
HandleSaveInvConsoleCommand);
|
||||||
|
|
||||||
m_aScene = scene;
|
m_aScene = scene;
|
||||||
|
@ -455,7 +457,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
|
||||||
options["excludefolders"] = new List<String>();
|
options["excludefolders"] = new List<String>();
|
||||||
((List<String>)options["excludefolders"]).Add(v);
|
((List<String>)options["excludefolders"]).Add(v);
|
||||||
});
|
});
|
||||||
ops.Add("perm=", delegate(string v) { options["perm"] = v; });
|
ops.Add("perm=", delegate(string v) { options["checkPermissions"] = v; });
|
||||||
|
|
||||||
List<string> mainParams = ops.Parse(cmdparams);
|
List<string> mainParams = ops.Parse(cmdparams);
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
/// Determines which objects will be included in the archive, according to their permissions.
|
/// Determines which objects will be included in the archive, according to their permissions.
|
||||||
/// Default is null, meaning no permission checks.
|
/// Default is null, meaning no permission checks.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string CheckPermissions { get; set; }
|
public string FilterContent { get; set; }
|
||||||
|
|
||||||
protected Scene m_rootScene;
|
protected Scene m_rootScene;
|
||||||
protected Stream m_saveStream;
|
protected Stream m_saveStream;
|
||||||
|
@ -131,7 +131,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
|
|
||||||
MultiRegionFormat = false;
|
MultiRegionFormat = false;
|
||||||
SaveAssets = true;
|
SaveAssets = true;
|
||||||
CheckPermissions = null;
|
FilterContent = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -150,7 +150,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
|
|
||||||
Object temp;
|
Object temp;
|
||||||
if (options.TryGetValue("checkPermissions", out temp))
|
if (options.TryGetValue("checkPermissions", out temp))
|
||||||
CheckPermissions = (string)temp;
|
FilterContent = (string)temp;
|
||||||
|
|
||||||
|
|
||||||
// Find the regions to archive
|
// Find the regions to archive
|
||||||
|
@ -238,7 +238,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
|
|
||||||
if (!sceneObject.IsDeleted && !sceneObject.IsAttachment)
|
if (!sceneObject.IsDeleted && !sceneObject.IsAttachment)
|
||||||
{
|
{
|
||||||
if (!CanUserArchiveObject(scene.RegionInfo.EstateSettings.EstateOwner, sceneObject, CheckPermissions, permissionsModule))
|
if (!CanUserArchiveObject(scene.RegionInfo.EstateSettings.EstateOwner, sceneObject, FilterContent, permissionsModule))
|
||||||
{
|
{
|
||||||
// The user isn't allowed to copy/transfer this object, so it will not be included in the OAR.
|
// The user isn't allowed to copy/transfer this object, so it will not be included in the OAR.
|
||||||
++numObjectsSkippedPermissions;
|
++numObjectsSkippedPermissions;
|
||||||
|
@ -296,12 +296,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="user">The user</param>
|
/// <param name="user">The user</param>
|
||||||
/// <param name="objGroup">The object group</param>
|
/// <param name="objGroup">The object group</param>
|
||||||
/// <param name="checkPermissions">Which permissions to check: "C" = Copy, "T" = Transfer</param>
|
/// <param name="filterContent">Which permissions to check: "C" = Copy, "T" = Transfer</param>
|
||||||
/// <param name="permissionsModule">The scene's permissions module</param>
|
/// <param name="permissionsModule">The scene's permissions module</param>
|
||||||
/// <returns>Whether the user is allowed to export the object to an OAR</returns>
|
/// <returns>Whether the user is allowed to export the object to an OAR</returns>
|
||||||
private bool CanUserArchiveObject(UUID user, SceneObjectGroup objGroup, string checkPermissions, IPermissionsModule permissionsModule)
|
private bool CanUserArchiveObject(UUID user, SceneObjectGroup objGroup, string filterContent, IPermissionsModule permissionsModule)
|
||||||
{
|
{
|
||||||
if (checkPermissions == null)
|
if (filterContent == null)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (permissionsModule == null)
|
if (permissionsModule == null)
|
||||||
|
@ -343,9 +343,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
canTransfer |= (obj.EveryoneMask & (uint)PermissionMask.Copy) != 0;
|
canTransfer |= (obj.EveryoneMask & (uint)PermissionMask.Copy) != 0;
|
||||||
|
|
||||||
bool partPermitted = true;
|
bool partPermitted = true;
|
||||||
if (checkPermissions.Contains("C") && !canCopy)
|
if (filterContent.Contains("C") && !canCopy)
|
||||||
partPermitted = false;
|
partPermitted = false;
|
||||||
if (checkPermissions.Contains("T") && !canTransfer)
|
if (filterContent.Contains("T") && !canTransfer)
|
||||||
partPermitted = false;
|
partPermitted = false;
|
||||||
|
|
||||||
// If the user is the Creator of the object then it can always be included in the OAR
|
// If the user is the Creator of the object then it can always be included in the OAR
|
||||||
|
|
|
@ -42,10 +42,10 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
/// <param name="invPath">The inventory path saved</param>
|
/// <param name="invPath">The inventory path saved</param>
|
||||||
/// <param name="savePath">The stream to which the archive was saved</param>
|
/// <param name="savePath">The stream to which the archive was saved</param>
|
||||||
/// <param name="reportedException">Contains the exception generated if the save did not succeed</param>
|
/// <param name="reportedException">Contains the exception generated if the save did not succeed</param>
|
||||||
/// <param name="SaveCount">Number of inventory items saved to archive</param>
|
/// <param name="saveCount">Number of inventory items saved to archive</param>
|
||||||
/// <param name="FilterCount">Number of inventory items skipped due to perm filter option</param>
|
/// <param name="filterCount">Number of inventory items skipped due to perm filter option</param>
|
||||||
public delegate void InventoryArchiveSaved(
|
public delegate void InventoryArchiveSaved(
|
||||||
UUID id, bool succeeded, UserAccount userInfo, string invPath, Stream saveStream, Exception reportedException, int SaveCount, int FilterCount);
|
UUID id, bool succeeded, UserAccount userInfo, string invPath, Stream saveStream, Exception reportedException, int saveCount, int filterCount);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Used for the OnInventoryArchiveLoaded event.
|
/// Used for the OnInventoryArchiveLoaded event.
|
||||||
|
@ -56,9 +56,9 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
/// <param name="invPath">The inventory path loaded</param>
|
/// <param name="invPath">The inventory path loaded</param>
|
||||||
/// <param name="savePath">The stream from which the archive was loaded</param>
|
/// <param name="savePath">The stream from which the archive was loaded</param>
|
||||||
/// <param name="reportedException">Contains the exception generated if the load did not succeed</param>
|
/// <param name="reportedException">Contains the exception generated if the load did not succeed</param>
|
||||||
/// <param name="LoadCount">Number of inventory items loaded from archive</param>
|
/// <param name="loadCount">Number of inventory items loaded from archive</param>
|
||||||
public delegate void InventoryArchiveLoaded(
|
public delegate void InventoryArchiveLoaded(
|
||||||
UUID id, bool succeeded, UserAccount userInfo, string invPath, Stream loadStream, Exception reportedException, int LoadCount);
|
UUID id, bool succeeded, UserAccount userInfo, string invPath, Stream loadStream, Exception reportedException, int loadCount);
|
||||||
|
|
||||||
|
|
||||||
public interface IInventoryArchiverModule
|
public interface IInventoryArchiverModule
|
||||||
|
|
Loading…
Reference in New Issue