mirror of
https://github.com/opensim/opensim.git
synced 2026-08-13 05:05:43 +08:00
implement serverside checks for media texture navigation in order to stop naughty clients
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user