Allow RemoteAdmin to deal with all the different kinds of region id parameter that have been used in different methods.
See http://opensimulator.org/mantis/view.php?id=5814 Thanks Michelle Argus!iar_mods
parent
9bab43b4d1
commit
3073370d0e
|
@ -257,17 +257,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
{
|
{
|
||||||
m_log.Info("[RADMIN]: Request to restart Region.");
|
m_log.Info("[RADMIN]: Request to restart Region.");
|
||||||
|
|
||||||
CheckStringParameters(requestData, responseData, new string[] {"regionID"});
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
UUID regionID = new UUID((string) requestData["regionID"]);
|
Scene rebootedScene = null;
|
||||||
|
GetSceneFromRegionParams(requestData, responseData, out rebootedScene);
|
||||||
Scene rebootedScene;
|
|
||||||
|
|
||||||
responseData["success"] = false;
|
responseData["success"] = false;
|
||||||
responseData["accepted"] = true;
|
responseData["accepted"] = true;
|
||||||
if (!m_application.SceneManager.TryGetScene(regionID, out rebootedScene))
|
|
||||||
throw new Exception("region not found");
|
|
||||||
|
|
||||||
responseData["rebooting"] = true;
|
responseData["rebooting"] = true;
|
||||||
|
|
||||||
IRestartModule restartModule = rebootedScene.RequestModuleInterface<IRestartModule>();
|
IRestartModule restartModule = rebootedScene.RequestModuleInterface<IRestartModule>();
|
||||||
|
@ -329,14 +325,15 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
// }
|
// }
|
||||||
|
|
||||||
CheckStringParameters(requestData, responseData, new string[] {"filename", "regionid"});
|
CheckStringParameters(requestData, responseData, new string[] {"filename", "regionid"});
|
||||||
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
|
Scene scene = null;
|
||||||
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
string file = (string)requestData["filename"];
|
string file = (string)requestData["filename"];
|
||||||
UUID regionID = (UUID) (string) requestData["regionid"];
|
|
||||||
m_log.InfoFormat("[RADMIN]: Terrain Loading: {0}", file);
|
|
||||||
|
|
||||||
responseData["accepted"] = true;
|
responseData["accepted"] = true;
|
||||||
|
|
||||||
LoadHeightmap(file, regionID);
|
LoadHeightmap(file, scene.RegionInfo.RegionID);
|
||||||
|
|
||||||
responseData["success"] = true;
|
responseData["success"] = true;
|
||||||
|
|
||||||
|
@ -353,18 +350,16 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
// m_log.DebugFormat("[RADMIN]: Save Terrain: XmlRpc {0}", request.ToString());
|
// m_log.DebugFormat("[RADMIN]: Save Terrain: XmlRpc {0}", request.ToString());
|
||||||
|
|
||||||
CheckStringParameters(requestData, responseData, new string[] { "filename", "regionid" });
|
CheckStringParameters(requestData, responseData, new string[] { "filename", "regionid" });
|
||||||
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
|
Scene region = null;
|
||||||
|
GetSceneFromRegionParams(requestData, responseData, out region);
|
||||||
|
|
||||||
string file = (string)requestData["filename"];
|
string file = (string)requestData["filename"];
|
||||||
UUID regionID = (UUID)(string)requestData["regionid"];
|
|
||||||
m_log.InfoFormat("[RADMIN]: Terrain Saving: {0}", file);
|
m_log.InfoFormat("[RADMIN]: Terrain Saving: {0}", file);
|
||||||
|
|
||||||
responseData["accepted"] = true;
|
responseData["accepted"] = true;
|
||||||
|
|
||||||
Scene region = null;
|
|
||||||
|
|
||||||
if (!m_application.SceneManager.TryGetScene(regionID, out region))
|
|
||||||
throw new Exception("1: unable to get a scene with that name");
|
|
||||||
|
|
||||||
ITerrainModule terrainModule = region.RequestModuleInterface<ITerrainModule>();
|
ITerrainModule terrainModule = region.RequestModuleInterface<ITerrainModule>();
|
||||||
if (null == terrainModule) throw new Exception("terrain module not available");
|
if (null == terrainModule) throw new Exception("terrain module not available");
|
||||||
|
|
||||||
|
@ -732,7 +727,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
|
|
||||||
responseData["success"] = true;
|
responseData["success"] = true;
|
||||||
responseData["region_name"] = region.RegionName;
|
responseData["region_name"] = region.RegionName;
|
||||||
responseData["region_uuid"] = region.RegionID.ToString();
|
responseData["region_id"] = region.RegionID.ToString();
|
||||||
|
responseData["region_uuid"] = region.RegionID.ToString(); //Deprecate July 2012
|
||||||
|
|
||||||
m_log.Info("[RADMIN]: CreateRegion: request complete");
|
m_log.Info("[RADMIN]: CreateRegion: request complete");
|
||||||
}
|
}
|
||||||
|
@ -774,16 +770,16 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
lock (m_requestLock)
|
lock (m_requestLock)
|
||||||
{
|
{
|
||||||
CheckStringParameters(requestData, responseData, new string[] {"region_name"});
|
CheckStringParameters(requestData, responseData, new string[] {"region_name"});
|
||||||
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
Scene scene = null;
|
Scene scene = null;
|
||||||
string regionName = (string) requestData["region_name"];
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
if (!m_application.SceneManager.TryGetScene(regionName, out scene))
|
|
||||||
throw new Exception(String.Format("region \"{0}\" does not exist", regionName));
|
|
||||||
|
|
||||||
m_application.RemoveRegion(scene, true);
|
m_application.RemoveRegion(scene, true);
|
||||||
|
|
||||||
responseData["success"] = true;
|
responseData["success"] = true;
|
||||||
responseData["region_name"] = regionName;
|
responseData["region_name"] = scene.RegionInfo.RegionName;
|
||||||
|
responseData["region_id"] = scene.RegionInfo.RegionID;
|
||||||
|
|
||||||
m_log.Info("[RADMIN]: DeleteRegion: request complete");
|
m_log.Info("[RADMIN]: DeleteRegion: request complete");
|
||||||
}
|
}
|
||||||
|
@ -823,44 +819,21 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
|
|
||||||
Hashtable responseData = (Hashtable)response.Value;
|
Hashtable responseData = (Hashtable)response.Value;
|
||||||
Hashtable requestData = (Hashtable)request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
Scene scene = null;
|
|
||||||
|
|
||||||
lock (m_requestLock)
|
lock (m_requestLock)
|
||||||
{
|
{
|
||||||
if (requestData.ContainsKey("region_id") &&
|
CheckRegionParams(requestData, responseData);
|
||||||
!String.IsNullOrEmpty((string) requestData["region_id"]))
|
|
||||||
{
|
Scene scene = null;
|
||||||
// Region specified by UUID
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
UUID regionID = (UUID) (string) requestData["region_id"];
|
|
||||||
if (!m_application.SceneManager.TryGetScene(regionID, out scene))
|
|
||||||
throw new Exception(String.Format("region \"{0}\" does not exist", regionID));
|
|
||||||
|
|
||||||
m_application.CloseRegion(scene);
|
m_application.CloseRegion(scene);
|
||||||
|
|
||||||
responseData["success"] = true;
|
responseData["success"] = true;
|
||||||
responseData["region_id"] = regionID;
|
responseData["region_name"] = scene.RegionInfo.RegionName;
|
||||||
|
responseData["region_id"] = scene.RegionInfo.RegionID;
|
||||||
|
|
||||||
response.Value = responseData;
|
response.Value = responseData;
|
||||||
}
|
|
||||||
else if (
|
|
||||||
requestData.ContainsKey("region_name")
|
|
||||||
&& !String.IsNullOrEmpty((string) requestData["region_name"]))
|
|
||||||
{
|
|
||||||
// Region specified by name
|
|
||||||
|
|
||||||
string regionName = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TryGetScene(regionName, out scene))
|
|
||||||
throw new Exception(String.Format("region \"{0}\" does not exist", regionName));
|
|
||||||
|
|
||||||
m_application.CloseRegion(scene);
|
|
||||||
|
|
||||||
responseData["success"] = true;
|
|
||||||
responseData["region_name"] = regionName;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new Exception("no region specified");
|
|
||||||
}
|
|
||||||
|
|
||||||
m_log.Info("[RADMIN]: CloseRegion: request complete");
|
m_log.Info("[RADMIN]: CloseRegion: request complete");
|
||||||
}
|
}
|
||||||
|
@ -907,12 +880,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
|
|
||||||
lock (m_requestLock)
|
lock (m_requestLock)
|
||||||
{
|
{
|
||||||
CheckStringParameters(requestData, responseData, new string[] {"region_name"});
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
Scene scene = null;
|
Scene scene = null;
|
||||||
string regionName = (string) requestData["region_name"];
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
if (!m_application.SceneManager.TryGetScene(regionName, out scene))
|
|
||||||
throw new Exception(String.Format("region \"{0}\" does not exist", regionName));
|
|
||||||
|
|
||||||
// Modify access
|
// Modify access
|
||||||
scene.RegionInfo.EstateSettings.PublicAccess =
|
scene.RegionInfo.EstateSettings.PublicAccess =
|
||||||
|
@ -942,7 +913,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
}
|
}
|
||||||
|
|
||||||
responseData["success"] = true;
|
responseData["success"] = true;
|
||||||
responseData["region_name"] = regionName;
|
responseData["region_name"] = scene.RegionInfo.RegionName;
|
||||||
|
responseData["region_id"] = scene.RegionInfo.RegionID;
|
||||||
|
|
||||||
m_log.Info("[RADMIN]: ModifyRegion: request complete");
|
m_log.Info("[RADMIN]: ModifyRegion: request complete");
|
||||||
}
|
}
|
||||||
|
@ -1338,22 +1310,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CheckStringParameters(requestData, responseData, new string[] {"filename"});
|
CheckStringParameters(requestData, responseData, new string[] {"filename"});
|
||||||
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
|
Scene scene = null;
|
||||||
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
|
|
||||||
string filename = (string) requestData["filename"];
|
string filename = (string) requestData["filename"];
|
||||||
Scene scene = null;
|
|
||||||
if (requestData.Contains("region_uuid"))
|
|
||||||
{
|
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
|
||||||
if (!m_application.SceneManager.TryGetScene(region_uuid, out scene))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TryGetScene(region_name, out scene))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
}
|
|
||||||
else throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
|
|
||||||
bool mergeOar = false;
|
bool mergeOar = false;
|
||||||
bool skipAssets = false;
|
bool skipAssets = false;
|
||||||
|
@ -1434,22 +1396,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CheckStringParameters(requestData, responseData, new string[] {"filename"});
|
CheckStringParameters(requestData, responseData, new string[] {"filename"});
|
||||||
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
|
Scene scene = null;
|
||||||
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
|
|
||||||
string filename = (string)requestData["filename"];
|
string filename = (string)requestData["filename"];
|
||||||
Scene scene = null;
|
|
||||||
if (requestData.Contains("region_uuid"))
|
|
||||||
{
|
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
|
||||||
if (!m_application.SceneManager.TryGetScene(region_uuid, out scene))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TryGetScene(region_name, out scene))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
}
|
|
||||||
else throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
|
|
||||||
Dictionary<string, object> options = new Dictionary<string, object>();
|
Dictionary<string, object> options = new Dictionary<string, object>();
|
||||||
|
|
||||||
|
@ -1521,25 +1473,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CheckStringParameters(requestData, responseData, new string[] {"filename"});
|
CheckStringParameters(requestData, responseData, new string[] {"filename"});
|
||||||
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
|
Scene scene = null;
|
||||||
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
|
|
||||||
string filename = (string) requestData["filename"];
|
string filename = (string) requestData["filename"];
|
||||||
if (requestData.Contains("region_uuid"))
|
|
||||||
{
|
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
|
|
||||||
}
|
|
||||||
else throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
|
|
||||||
responseData["switched"] = true;
|
responseData["switched"] = true;
|
||||||
|
|
||||||
|
@ -1587,23 +1526,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
CheckStringParameters(requestData, responseData, new string[] {"filename"});
|
CheckStringParameters(requestData, responseData, new string[] {"filename"});
|
||||||
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
|
Scene scene = null;
|
||||||
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
|
|
||||||
string filename = (string) requestData["filename"];
|
string filename = (string) requestData["filename"];
|
||||||
if (requestData.Contains("region_uuid"))
|
|
||||||
{
|
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
|
|
||||||
}
|
|
||||||
else throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
|
|
||||||
responseData["switched"] = true;
|
responseData["switched"] = true;
|
||||||
|
|
||||||
|
@ -1647,33 +1575,15 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
Hashtable responseData = (Hashtable)response.Value;
|
Hashtable responseData = (Hashtable)response.Value;
|
||||||
Hashtable requestData = (Hashtable)request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
|
|
||||||
responseData["success"] = true;
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
if (requestData.Contains("region_uuid"))
|
Scene scene = null;
|
||||||
{
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
}
|
|
||||||
|
|
||||||
Scene scene = m_application.SceneManager.CurrentScene;
|
|
||||||
int health = scene.GetHealth();
|
int health = scene.GetHealth();
|
||||||
responseData["health"] = health;
|
responseData["health"] = health;
|
||||||
|
|
||||||
|
responseData["success"] = true;
|
||||||
m_log.Info("[RADMIN]: Query XML Administrator Request complete");
|
m_log.Info("[RADMIN]: Query XML Administrator Request complete");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1700,24 +1610,11 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
|
|
||||||
responseData["success"] = true;
|
responseData["success"] = true;
|
||||||
|
|
||||||
if (requestData.Contains("region_uuid"))
|
CheckRegionParams(requestData, responseData);
|
||||||
{
|
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
|
Scene scene = null;
|
||||||
}
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
else throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
|
|
||||||
Scene scene = m_application.SceneManager.CurrentScene;
|
|
||||||
scene.RegionInfo.EstateSettings.EstateAccess = new UUID[]{};
|
scene.RegionInfo.EstateSettings.EstateAccess = new UUID[]{};
|
||||||
|
|
||||||
if (scene.RegionInfo.Persistent)
|
if (scene.RegionInfo.Persistent)
|
||||||
|
@ -1733,32 +1630,17 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
Hashtable responseData = (Hashtable)response.Value;
|
Hashtable responseData = (Hashtable)response.Value;
|
||||||
Hashtable requestData = (Hashtable)request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
|
|
||||||
if (requestData.Contains("region_uuid"))
|
CheckRegionParams(requestData, responseData);
|
||||||
{
|
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
Scene scene = null;
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
}
|
|
||||||
|
|
||||||
int addedUsers = 0;
|
int addedUsers = 0;
|
||||||
|
|
||||||
if (requestData.Contains("users"))
|
if (requestData.Contains("users"))
|
||||||
{
|
{
|
||||||
UUID scopeID = m_application.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID;
|
UUID scopeID = scene.RegionInfo.ScopeID;
|
||||||
IUserAccountService userService = m_application.SceneManager.CurrentOrFirstScene.UserAccountService;
|
IUserAccountService userService = scene.UserAccountService;
|
||||||
Scene scene = m_application.SceneManager.CurrentScene;
|
|
||||||
Hashtable users = (Hashtable) requestData["users"];
|
Hashtable users = (Hashtable) requestData["users"];
|
||||||
List<UUID> uuids = new List<UUID>();
|
List<UUID> uuids = new List<UUID>();
|
||||||
foreach (string name in users.Values)
|
foreach (string name in users.Values)
|
||||||
|
@ -1797,32 +1679,18 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
Hashtable responseData = (Hashtable)response.Value;
|
Hashtable responseData = (Hashtable)response.Value;
|
||||||
Hashtable requestData = (Hashtable)request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
|
|
||||||
responseData["success"] = true;
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
if (requestData.Contains("region_uuid"))
|
Scene scene = null;
|
||||||
{
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
|
|
||||||
}
|
|
||||||
else throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
|
|
||||||
int removedUsers = 0;
|
int removedUsers = 0;
|
||||||
|
|
||||||
if (requestData.Contains("users"))
|
if (requestData.Contains("users"))
|
||||||
{
|
{
|
||||||
UUID scopeID = m_application.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID;
|
UUID scopeID = scene.RegionInfo.ScopeID;
|
||||||
IUserAccountService userService = m_application.SceneManager.CurrentOrFirstScene.UserAccountService;
|
IUserAccountService userService = scene.UserAccountService;
|
||||||
//UserProfileCacheService ups = m_application.CommunicationsManager.UserProfileCacheService;
|
//UserProfileCacheService ups = m_application.CommunicationsManager.UserProfileCacheService;
|
||||||
Scene scene = m_application.SceneManager.CurrentScene;
|
|
||||||
Hashtable users = (Hashtable) requestData["users"];
|
Hashtable users = (Hashtable) requestData["users"];
|
||||||
List<UUID> uuids = new List<UUID>();
|
List<UUID> uuids = new List<UUID>();
|
||||||
foreach (string name in users.Values)
|
foreach (string name in users.Values)
|
||||||
|
@ -1849,6 +1717,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
}
|
}
|
||||||
|
|
||||||
responseData["removed"] = removedUsers;
|
responseData["removed"] = removedUsers;
|
||||||
|
responseData["success"] = true;
|
||||||
|
|
||||||
m_log.Info("[RADMIN]: Access List Remove Request complete");
|
m_log.Info("[RADMIN]: Access List Remove Request complete");
|
||||||
}
|
}
|
||||||
|
@ -1860,32 +1729,18 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
Hashtable responseData = (Hashtable)response.Value;
|
Hashtable responseData = (Hashtable)response.Value;
|
||||||
Hashtable requestData = (Hashtable)request.Params[0];
|
Hashtable requestData = (Hashtable)request.Params[0];
|
||||||
|
|
||||||
responseData["success"] = true;
|
CheckRegionParams(requestData, responseData);
|
||||||
|
|
||||||
if (requestData.Contains("region_uuid"))
|
Scene scene = null;
|
||||||
{
|
GetSceneFromRegionParams(requestData, responseData, out scene);
|
||||||
UUID region_uuid = (UUID) (string) requestData["region_uuid"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_uuid))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString()));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_uuid.ToString());
|
|
||||||
}
|
|
||||||
else if (requestData.Contains("region_name"))
|
|
||||||
{
|
|
||||||
string region_name = (string) requestData["region_name"];
|
|
||||||
if (!m_application.SceneManager.TrySetCurrentScene(region_name))
|
|
||||||
throw new Exception(String.Format("failed to switch to region {0}", region_name));
|
|
||||||
m_log.InfoFormat("[RADMIN]: Switched to region {0}", region_name);
|
|
||||||
}
|
|
||||||
else throw new Exception("neither region_name nor region_uuid given");
|
|
||||||
|
|
||||||
Scene scene = m_application.SceneManager.CurrentScene;
|
|
||||||
UUID[] accessControlList = scene.RegionInfo.EstateSettings.EstateAccess;
|
UUID[] accessControlList = scene.RegionInfo.EstateSettings.EstateAccess;
|
||||||
Hashtable users = new Hashtable();
|
Hashtable users = new Hashtable();
|
||||||
|
|
||||||
foreach (UUID user in accessControlList)
|
foreach (UUID user in accessControlList)
|
||||||
{
|
{
|
||||||
UUID scopeID = m_application.SceneManager.CurrentOrFirstScene.RegionInfo.ScopeID;
|
UUID scopeID = scene.RegionInfo.ScopeID;
|
||||||
UserAccount account = m_application.SceneManager.CurrentOrFirstScene.UserAccountService.GetUserAccount(scopeID, user);
|
UserAccount account = scene.UserAccountService.GetUserAccount(scopeID, user);
|
||||||
if (account != null)
|
if (account != null)
|
||||||
{
|
{
|
||||||
users[user.ToString()] = account.FirstName + " " + account.LastName;
|
users[user.ToString()] = account.FirstName + " " + account.LastName;
|
||||||
|
@ -1893,6 +1748,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
}
|
}
|
||||||
|
|
||||||
responseData["users"] = users;
|
responseData["users"] = users;
|
||||||
|
responseData["success"] = true;
|
||||||
|
|
||||||
m_log.Info("[RADMIN]: Access List List Request complete");
|
m_log.Info("[RADMIN]: Access List List Request complete");
|
||||||
}
|
}
|
||||||
|
@ -2010,6 +1866,126 @@ namespace OpenSim.ApplicationPlugins.RemoteController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CheckRegionParams(Hashtable requestData, Hashtable responseData)
|
||||||
|
{
|
||||||
|
//Checks if region parameters exist and gives exeption if no parameters are given
|
||||||
|
if ((requestData.ContainsKey("region_id") && !String.IsNullOrEmpty((string)requestData["region_id"])) ||
|
||||||
|
(requestData.ContainsKey("region_name") && !String.IsNullOrEmpty((string)requestData["region_name"])))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#region Deprecate July 2012
|
||||||
|
//region_ID, regionid, region_uuid will be deprecated in July 2012!!!!!!
|
||||||
|
else if (requestData.ContainsKey("regionid") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["regionid"]))
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[RADMIN]: Use of parameter regionid will be deprecated as of July 2012. Use region_id instead");
|
||||||
|
}
|
||||||
|
else if (requestData.ContainsKey("region_ID") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["region_ID"]))
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[RADMIN]: Use of parameter region_ID will be deprecated as of July 2012. Use region_id instead");
|
||||||
|
}
|
||||||
|
else if (requestData.ContainsKey("regionID") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["regionID"]))
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[RADMIN]: Use of parameter regionID will be deprecated as of July 2012. Use region_id instead");
|
||||||
|
}
|
||||||
|
else if (requestData.ContainsKey("region_uuid") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["region_uuid"]))
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[RADMIN]: Use of parameter region_uuid will be deprecated as of July 2012. Use region_id instead");
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
else
|
||||||
|
{
|
||||||
|
responseData["accepted"] = false;
|
||||||
|
throw new Exception("no region_name or region_id given");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void GetSceneFromRegionParams(Hashtable requestData, Hashtable responseData, out Scene scene)
|
||||||
|
{
|
||||||
|
scene = null;
|
||||||
|
|
||||||
|
if (requestData.ContainsKey("region_id") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["region_id"]))
|
||||||
|
{
|
||||||
|
UUID regionID = (UUID)(string)requestData["region_id"];
|
||||||
|
if (!m_application.SceneManager.TryGetScene(regionID, out scene))
|
||||||
|
{
|
||||||
|
responseData["error"] = String.Format("Region ID {0} not found", regionID);
|
||||||
|
throw new Exception(String.Format("Region ID {0} not found", regionID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#region Deprecate July 2012
|
||||||
|
else if (requestData.ContainsKey("regionid") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["regionid"]))
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[RADMIN]: Use of parameter regionid will be deprecated as of July 2012. Use region_id instead");
|
||||||
|
|
||||||
|
UUID regionID = (UUID)(string)requestData["regionid"];
|
||||||
|
if (!m_application.SceneManager.TryGetScene(regionID, out scene))
|
||||||
|
{
|
||||||
|
responseData["error"] = String.Format("Region ID {0} not found", regionID);
|
||||||
|
throw new Exception(String.Format("Region ID {0} not found", regionID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (requestData.ContainsKey("region_ID") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["region_ID"]))
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[RADMIN]: Use of parameter region_ID will be deprecated as of July 2012. Use region_id instead");
|
||||||
|
|
||||||
|
UUID regionID = (UUID)(string)requestData["region_ID"];
|
||||||
|
if (!m_application.SceneManager.TryGetScene(regionID, out scene))
|
||||||
|
{
|
||||||
|
responseData["error"] = String.Format("Region ID {0} not found", regionID);
|
||||||
|
throw new Exception(String.Format("Region ID {0} not found", regionID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (requestData.ContainsKey("regionID") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["regionID"]))
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[RADMIN]: Use of parameter regionID will be deprecated as of July 2012. Use region_id instead");
|
||||||
|
|
||||||
|
UUID regionID = (UUID)(string)requestData["regionID"];
|
||||||
|
if (!m_application.SceneManager.TryGetScene(regionID, out scene))
|
||||||
|
{
|
||||||
|
responseData["error"] = String.Format("Region ID {0} not found", regionID);
|
||||||
|
throw new Exception(String.Format("Region ID {0} not found", regionID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (requestData.ContainsKey("region_uuid") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["region_uuid"]))
|
||||||
|
{
|
||||||
|
m_log.WarnFormat("[RADMIN]: Use of parameter region_uuid will be deprecated as of July 2012. Use region_id instead");
|
||||||
|
|
||||||
|
UUID regionID = (UUID)(string)requestData["region_uuid"];
|
||||||
|
if (!m_application.SceneManager.TryGetScene(regionID, out scene))
|
||||||
|
{
|
||||||
|
responseData["error"] = String.Format("Region ID {0} not found", regionID);
|
||||||
|
throw new Exception(String.Format("Region ID {0} not found", regionID));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
else if (requestData.ContainsKey("region_name") &&
|
||||||
|
!String.IsNullOrEmpty((string)requestData["region_name"]))
|
||||||
|
{
|
||||||
|
string regionName = (string)requestData["region_name"];
|
||||||
|
if (!m_application.SceneManager.TryGetScene(regionName, out scene))
|
||||||
|
{
|
||||||
|
responseData["error"] = String.Format("Region {0} not found", regionName);
|
||||||
|
throw new Exception(String.Format("Region {0} not found", regionName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
responseData["error"] = "no region_name or region_id given";
|
||||||
|
throw new Exception("no region_name or region_id given");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
private bool GetBoolean(Hashtable requestData, string tag, bool defaultValue)
|
private bool GetBoolean(Hashtable requestData, string tag, bool defaultValue)
|
||||||
{
|
{
|
||||||
// If an access value has been provided, apply it.
|
// If an access value has been provided, apply it.
|
||||||
|
|
Loading…
Reference in New Issue