Merge branch 'master' into careminster-presence-refactor

This commit is contained in:
Melanie
2010-09-21 04:03:14 +01:00
16 changed files with 563 additions and 60 deletions

View File

@@ -238,7 +238,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
m_scene.Permissions.OnEditNotecard += CanEditNotecard; //NOT YET IMPLEMENTED
m_scene.Permissions.OnEditScript += CanEditScript; //NOT YET IMPLEMENTED
m_scene.Permissions.OnCreateObjectInventory += CanCreateObjectInventory; //NOT IMPLEMENTED HERE
m_scene.Permissions.OnCreateObjectInventory += CanCreateObjectInventory;
m_scene.Permissions.OnEditObjectInventory += CanEditObjectInventory;//MAYBE FULLY IMPLEMENTED
m_scene.Permissions.OnCopyObjectInventory += CanCopyObjectInventory; //NOT YET IMPLEMENTED
m_scene.Permissions.OnDeleteObjectInventory += CanDeleteObjectInventory; //NOT YET IMPLEMENTED
@@ -1780,10 +1780,28 @@ namespace OpenSim.Region.CoreModules.World.Permissions
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
if ((int)InventoryType.LSL == invType)
if (m_allowedScriptCreators == UserSet.Administrators && !IsAdministrator(userID))
return false;
SceneObjectPart part = m_scene.GetSceneObjectPart(objectID);
ScenePresence p = m_scene.GetScenePresence(userID);
if (part == null || p == null)
return false;
if (!IsAdministrator(userID))
{
if (part.OwnerID != userID)
{
// Group permissions
if ((part.GroupID == UUID.Zero) || (p.ControllingClient.GetGroupPowers(part.GroupID) == 0) || ((part.GroupMask & (uint)PermissionMask.Modify) == 0))
return false;
} else {
if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0)
return false;
}
if ((int)InventoryType.LSL == invType)
if (m_allowedScriptCreators == UserSet.Administrators)
return false;
}
return true;
}
@@ -1980,4 +1998,4 @@ namespace OpenSim.Region.CoreModules.World.Permissions
return false;
}
}
}
}