nore permissions masks hierachy
parent
fedd1a93d2
commit
d8341588b3
|
@ -597,10 +597,10 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
basePerms = PermissionsUtil.FixAndFoldPermissions(basePerms);
|
basePerms = PermissionsUtil.FixAndFoldPermissions(basePerms);
|
||||||
|
|
||||||
item.BasePermissions = basePerms;
|
item.BasePermissions = basePerms;
|
||||||
item.CurrentPermissions = item.BasePermissions;
|
item.CurrentPermissions = basePerms;
|
||||||
item.NextPermissions = effectivePerms & so.RootPart.NextOwnerMask;
|
item.NextPermissions = basePerms & so.RootPart.NextOwnerMask;
|
||||||
item.EveryOnePermissions = so.RootPart.EveryoneMask & so.RootPart.NextOwnerMask;
|
item.EveryOnePermissions = basePerms & so.RootPart.EveryoneMask;
|
||||||
item.GroupPermissions = so.RootPart.GroupMask & so.RootPart.NextOwnerMask;
|
item.GroupPermissions = basePerms & so.RootPart.GroupMask;
|
||||||
|
|
||||||
// apply next owner perms on rez
|
// apply next owner perms on rez
|
||||||
item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm;
|
item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm;
|
||||||
|
|
|
@ -216,12 +216,10 @@ namespace OpenSim.Region.CoreModules.World.Objects.BuySell
|
||||||
|
|
||||||
item.BasePermissions = perms;
|
item.BasePermissions = perms;
|
||||||
item.CurrentPermissions = perms;
|
item.CurrentPermissions = perms;
|
||||||
|
item.NextPermissions = part.NextOwnerMask & perms;
|
||||||
perms &= part.NextOwnerMask;
|
|
||||||
item.NextPermissions = perms;
|
|
||||||
|
|
||||||
item.EveryOnePermissions = part.EveryoneMask & perms;
|
item.EveryOnePermissions = part.EveryoneMask & perms;
|
||||||
item.GroupPermissions = part.GroupMask & perms;
|
item.GroupPermissions = part.GroupMask & perms;
|
||||||
|
|
||||||
item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm;
|
item.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm;
|
||||||
item.CreationDate = Util.UnixTimeSinceEpoch();
|
item.CreationDate = Util.UnixTimeSinceEpoch();
|
||||||
|
|
||||||
|
|
|
@ -1267,29 +1267,27 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// TODO: Fix this after the inventory fixer exists and has beenr run
|
// TODO: Fix this after the inventory fixer exists and has beenr run
|
||||||
if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions())
|
if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions())
|
||||||
{
|
{
|
||||||
agentItem.BasePermissions = taskItem.BasePermissions & taskItem.NextPermissions;
|
uint perms = taskItem.BasePermissions & taskItem.NextPermissions;
|
||||||
if (taskItem.InvType == (int)InventoryType.Object)
|
if (taskItem.InvType == (int)InventoryType.Object)
|
||||||
{
|
{
|
||||||
uint perms = agentItem.BasePermissions;
|
PermissionsUtil.ApplyFoldedPermissions(taskItem.CurrentPermissions, ref perms );
|
||||||
PermissionsUtil.ApplyFoldedPermissions(taskItem.CurrentPermissions, ref perms );
|
perms = PermissionsUtil.FixAndFoldPermissions(perms);
|
||||||
// perms |= (uint)PermissionMask.Move;
|
|
||||||
// agentItem.BasePermissions = perms;
|
|
||||||
agentItem.BasePermissions = PermissionsUtil.FixAndFoldPermissions(perms);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
agentItem.BasePermissions &= taskItem.CurrentPermissions;
|
perms &= taskItem.CurrentPermissions;
|
||||||
|
|
||||||
// always unlock
|
// always unlock
|
||||||
agentItem.BasePermissions |= (uint)PermissionMask.Move;
|
perms |= (uint)PermissionMask.Move;
|
||||||
|
|
||||||
agentItem.CurrentPermissions = agentItem.BasePermissions;
|
agentItem.BasePermissions = perms;
|
||||||
|
agentItem.CurrentPermissions = perms;
|
||||||
agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm;
|
agentItem.NextPermissions = perms & taskItem.NextPermissions;
|
||||||
agentItem.Flags &= ~(uint)(InventoryItemFlags.ObjectOverwriteBase | InventoryItemFlags.ObjectOverwriteOwner | InventoryItemFlags.ObjectOverwriteGroup | InventoryItemFlags.ObjectOverwriteEveryone | InventoryItemFlags.ObjectOverwriteNextOwner);
|
agentItem.EveryOnePermissions = perms & taskItem.EveryonePermissions;
|
||||||
agentItem.NextPermissions = taskItem.NextPermissions;
|
|
||||||
agentItem.EveryOnePermissions = taskItem.EveryonePermissions & (taskItem.NextPermissions | (uint)PermissionMask.Move);
|
|
||||||
// Group permissions make no sense here
|
// Group permissions make no sense here
|
||||||
agentItem.GroupPermissions = 0;
|
agentItem.GroupPermissions = 0;
|
||||||
|
|
||||||
|
agentItem.Flags |= (uint)InventoryItemFlags.ObjectSlamPerm;
|
||||||
|
agentItem.Flags &= ~(uint)(InventoryItemFlags.ObjectOverwriteBase | InventoryItemFlags.ObjectOverwriteOwner | InventoryItemFlags.ObjectOverwriteGroup | InventoryItemFlags.ObjectOverwriteEveryone | InventoryItemFlags.ObjectOverwriteNextOwner);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue