Phase 1 of implementing a transfer permission. Overwrite libOMV's PermissionMask

with our own and add export permissions as well as a new definition for "All" as meaning "all conventional permissions" rather than "all possible permissions"
This commit is contained in:
Melanie
2013-03-24 18:56:28 +01:00
parent 8bc43ea773
commit c341664c1b
26 changed files with 65 additions and 20 deletions

View File

@@ -50,6 +50,7 @@ using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
using OSDArray = OpenMetaverse.StructuredData.OSDArray;
using OSDMap = OpenMetaverse.StructuredData.OSDMap;
using PermissionMask = OpenSim.Framework.PermissionMask;
namespace OpenSim.Region.ClientStack.Linden
{
@@ -830,9 +831,9 @@ namespace OpenSim.Region.ClientStack.Linden
texitem.Folder = texturesFolder;
texitem.CurrentPermissions
= (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer);
= (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer | PermissionMask.Export);
texitem.BasePermissions = (uint)PermissionMask.All;
texitem.BasePermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export;
texitem.EveryOnePermissions = 0;
texitem.NextPermissions = (uint)PermissionMask.All;
texitem.CreationDate = Util.UnixTimeSinceEpoch();
@@ -1097,9 +1098,9 @@ namespace OpenSim.Region.ClientStack.Linden
else
{
item.CurrentPermissions
= (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer);
= (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer | PermissionMask.Export);
item.BasePermissions = (uint)PermissionMask.All;
item.BasePermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export;
item.EveryOnePermissions = 0;
item.NextPermissions = (uint)PermissionMask.All;
}

View File

@@ -51,6 +51,7 @@ using RegionFlags = OpenMetaverse.RegionFlags;
using Nini.Config;
using System.IO;
using PermissionMask = OpenSim.Framework.PermissionMask;
namespace OpenSim.Region.ClientStack.LindenUDP
{
@@ -1802,7 +1803,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public void SendInventoryItemDetails(UUID ownerID, InventoryItemBase item)
{
const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
// Fudge this value. It's only needed to make the CRC anyway
const uint FULL_MASK_PERMISSIONS = (uint)0x7fffffff;
FetchInventoryReplyPacket inventoryReply = (FetchInventoryReplyPacket)PacketPool.Instance.GetPacket(PacketType.FetchInventoryReply);
// TODO: don't create new blocks if recycling an old packet
@@ -2007,7 +2009,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected void SendBulkUpdateInventoryItem(InventoryItemBase item)
{
const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
const uint FULL_MASK_PERMISSIONS = (uint)0x7ffffff;
BulkUpdateInventoryPacket bulkUpdate
= (BulkUpdateInventoryPacket)PacketPool.Instance.GetPacket(PacketType.BulkUpdateInventory);
@@ -2066,7 +2068,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <see>IClientAPI.SendInventoryItemCreateUpdate(InventoryItemBase)</see>
public void SendInventoryItemCreateUpdate(InventoryItemBase Item, UUID transactionID, uint callbackId)
{
const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
const uint FULL_MASK_PERMISSIONS = (uint)0x7fffffff;
UpdateCreateInventoryItemPacket InventoryReply
= (UpdateCreateInventoryItemPacket)PacketPool.Instance.GetPacket(