Permissions compatibility hack 1: anyone copy - new permissions require that all items in all object parts contents have anyone copy set. Old code only required it on object. This hack tries to allow objects older than today to still work as before on this. (this is a test, we may need to change it)
parent
a96c0f760a
commit
2dbf96593c
|
@ -338,6 +338,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
uint rootEveryonePerms = RootPart.EveryoneMask;
|
uint rootEveryonePerms = RootPart.EveryoneMask;
|
||||||
uint everyone = rootEveryonePerms;
|
uint everyone = rootEveryonePerms;
|
||||||
|
|
||||||
|
// date is time of writing april 30th 2017
|
||||||
|
bool newObject = (RootPart.CreationDate == 0 || RootPart.CreationDate > 1493574994);
|
||||||
SceneObjectPart[] parts = m_parts.GetArray();
|
SceneObjectPart[] parts = m_parts.GetArray();
|
||||||
for (int i = 0; i < parts.Length; i++)
|
for (int i = 0; i < parts.Length; i++)
|
||||||
{
|
{
|
||||||
|
@ -345,7 +347,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
part.AggregateInnerPerms();
|
part.AggregateInnerPerms();
|
||||||
owner &= part.AggregatedInnerOwnerPerms;
|
owner &= part.AggregatedInnerOwnerPerms;
|
||||||
group &= part.AggregatedInnerGroupPerms;
|
group &= part.AggregatedInnerGroupPerms;
|
||||||
everyone &= part.AggregatedInnerEveryonePerms;
|
if(newObject)
|
||||||
|
everyone &= part.AggregatedInnerEveryonePerms;
|
||||||
}
|
}
|
||||||
// recover modify and move
|
// recover modify and move
|
||||||
rootOwnerPerms &= movemodmask;
|
rootOwnerPerms &= movemodmask;
|
||||||
|
@ -407,14 +410,16 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
uint everyone = rootEveryonePerms;
|
uint everyone = rootEveryonePerms;
|
||||||
|
|
||||||
bool needUpdate = false;
|
bool needUpdate = false;
|
||||||
|
// date is time of writing april 30th 2017
|
||||||
|
bool newObject = (RootPart.CreationDate == 0 || RootPart.CreationDate > 1493574994);
|
||||||
SceneObjectPart[] parts = m_parts.GetArray();
|
SceneObjectPart[] parts = m_parts.GetArray();
|
||||||
for (int i = 0; i < parts.Length; i++)
|
for (int i = 0; i < parts.Length; i++)
|
||||||
{
|
{
|
||||||
SceneObjectPart part = parts[i];
|
SceneObjectPart part = parts[i];
|
||||||
owner &= part.AggregatedInnerOwnerPerms;
|
owner &= part.AggregatedInnerOwnerPerms;
|
||||||
group &= part.AggregatedInnerGroupPerms;
|
group &= part.AggregatedInnerGroupPerms;
|
||||||
everyone &= part.AggregatedInnerEveryonePerms;
|
if(newObject)
|
||||||
|
everyone &= part.AggregatedInnerEveryonePerms;
|
||||||
}
|
}
|
||||||
// recover modify and move
|
// recover modify and move
|
||||||
rootOwnerPerms &= movemodmask;
|
rootOwnerPerms &= movemodmask;
|
||||||
|
|
Loading…
Reference in New Issue