implement serverside checks for media texture navigation in order to stop naughty clients

This commit is contained in:
Justin Clark-Casey (justincc)
2010-07-13 23:58:19 +01:00
parent a9101feb10
commit ee6cd884c9
3 changed files with 52 additions and 8 deletions

View File

@@ -251,6 +251,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
m_scene.Permissions.OnTeleport += CanTeleport; //NOT YET IMPLEMENTED
m_scene.Permissions.OnControlPrimMedia += CanControlPrimMedia;
m_scene.Permissions.OnInteractWithPrimMedia += CanInteractWithPrimMedia;
m_scene.AddCommand(this, "bypass permissions",
"bypass permissions <true / false>",
@@ -1915,7 +1916,25 @@ namespace OpenSim.Region.CoreModules.World.Permissions
return true;
return GenericPrimMediaPermission(part, agentID, me.ControlPermissions);
}
}
private bool CanInteractWithPrimMedia(UUID agentID, UUID primID, int face)
{
if (null == m_moapModule)
return false;
SceneObjectPart part = m_scene.GetSceneObjectPart(primID);
if (null == part)
return false;
MediaEntry me = m_moapModule.GetMediaEntry(part, face);
// If there is no existing media entry then it can be controlled (in this context, created).
if (null == me)
return true;
return GenericPrimMediaPermission(part, agentID, me.InteractPermissions);
}
private bool GenericPrimMediaPermission(SceneObjectPart part, UUID agentID, MediaPermission perms)
{