mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 17:32:42 +08:00
chance new effective permissions code to ease aggregation on demand( ie on changes). But still doing full aggregation on checks, so still heavy
This commit is contained in:
@@ -1317,48 +1317,16 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
}
|
||||
}
|
||||
|
||||
// reduce to minimal set
|
||||
public void AggregateEveryOnePerms(ref uint current)
|
||||
public void AggregateInnerPerms(ref uint owner, ref uint group, ref uint everyone)
|
||||
{
|
||||
foreach (TaskInventoryItem item in m_items.Values)
|
||||
{
|
||||
current &= item.EveryonePermissions;
|
||||
if(current == 0)
|
||||
break;
|
||||
owner &= item.CurrentPermissions;
|
||||
group &= item.GroupPermissions;
|
||||
everyone &= item.EveryonePermissions;
|
||||
}
|
||||
}
|
||||
|
||||
public void AggregateGroupPerms(ref uint current)
|
||||
{
|
||||
foreach (TaskInventoryItem item in m_items.Values)
|
||||
{
|
||||
current &= item.GroupPermissions;
|
||||
if(current == 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void AggregateGroupOrEveryonePerms(ref uint current)
|
||||
{
|
||||
foreach (TaskInventoryItem item in m_items.Values)
|
||||
{
|
||||
current &= (item.GroupPermissions | item.EveryonePermissions);
|
||||
if(current == 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void AggregateOwnerPerms(ref uint current)
|
||||
{
|
||||
foreach (TaskInventoryItem item in m_items.Values)
|
||||
{
|
||||
current &= item.CurrentPermissions;
|
||||
if(current == 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public uint MaskEffectivePermissions()
|
||||
{
|
||||
uint mask=0x7fffffff;
|
||||
|
||||
Reference in New Issue
Block a user