From f95b6081cba084d1b067acea99c0effa2b3bf42c Mon Sep 17 00:00:00 2001
From: MW
Date: Thu, 24 May 2007 12:35:32 +0000
Subject: Renamed the new Directories. (removed the "-Source" from the end of
them)
---
OpenSim/OpenSim.RegionServer/CAPS/AdminWebFront.cs | 256 +++++++++++++++++++++
1 file changed, 256 insertions(+)
create mode 100644 OpenSim/OpenSim.RegionServer/CAPS/AdminWebFront.cs
(limited to 'OpenSim/OpenSim.RegionServer/CAPS')
diff --git a/OpenSim/OpenSim.RegionServer/CAPS/AdminWebFront.cs b/OpenSim/OpenSim.RegionServer/CAPS/AdminWebFront.cs
new file mode 100644
index 0000000..2299fa4
--- /dev/null
+++ b/OpenSim/OpenSim.RegionServer/CAPS/AdminWebFront.cs
@@ -0,0 +1,256 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using OpenSim.world;
+using OpenSim.UserServer;
+using OpenSim.Servers;
+using OpenSim.Assets;
+using OpenSim.Framework.Inventory;
+using libsecondlife;
+using OpenSim.RegionServer.world.scripting;
+using Avatar=libsecondlife.Avatar;
+
+namespace OpenSim.CAPS
+{
+ public class AdminWebFront
+ {
+ private string AdminPage;
+ private string NewAccountForm;
+ private string LoginForm;
+ private string passWord = "Admin";
+ private World m_world;
+ private LoginServer _userServer;
+ private InventoryCache _inventoryCache;
+
+ public AdminWebFront(string password, World world, InventoryCache inventoryCache, LoginServer userserver)
+ {
+ _inventoryCache = inventoryCache;
+ _userServer = userserver;
+ m_world = world;
+ passWord = password;
+ LoadAdminPage();
+ }
+
+ public void LoadMethods( BaseHttpServer server )
+ {
+ server.AddRestHandler("GET", "/Admin", GetAdminPage);
+ server.AddRestHandler("GET", "/Admin/Welcome", GetWelcomePage);
+ server.AddRestHandler("GET", "/Admin/Accounts", GetAccountsPage );
+ server.AddRestHandler("GET", "/Admin/Clients", GetConnectedClientsPage);
+ server.AddRestHandler("GET", "/Admin/Entities", GetEntitiesPage);
+ server.AddRestHandler("GET", "/Admin/Scripts", GetScriptsPage);
+ server.AddRestHandler("GET", "/Admin/AddTestScript", AddTestScript );
+ server.AddRestHandler("GET", "/ClientInventory", GetClientsInventory);
+
+ server.AddRestHandler("POST", "/Admin/NewAccount", PostNewAccount );
+ server.AddRestHandler("POST", "/Admin/Login", PostLogin );
+ }
+
+ private string GetWelcomePage(string request, string path, string param)
+ {
+ string responseString;
+ responseString = "Welcome to the OpenSim Admin Page";
+ responseString += "
" + LoginForm;
+ return responseString;
+ }
+
+ private string PostLogin(string requestBody, string path, string param)
+ {
+ string responseString;
+// Console.WriteLine(requestBody);
+ if (requestBody == passWord)
+ {
+ responseString = "
Login Successful
"; + } + else + { + responseString = "Password Error
"; + responseString += "Please Login with the correct password
"; + responseString += "New Account created
"; + } + else + { + responseString = "Admin password is incorrect, please login with the correct password
"; + responseString += "Listing connected Clients
"; + OpenSim.world.Avatar TempAv; + foreach (libsecondlife.LLUUID UUID in m_world.Entities.Keys) + { + if (m_world.Entities[UUID].ToString() == "OpenSim.world.Avatar") + { + TempAv = (OpenSim.world.Avatar)m_world.Entities[UUID]; + responseString += "Client: "; + responseString += TempAv.firstname + " , " + TempAv.lastname + " , " + UUID + " , " + TempAv.ControllingClient.SessionID + " , " + TempAv.ControllingClient.CircuitCode + " , " + TempAv.ControllingClient.userEP.ToString(); + responseString += "
"; + } + } + return responseString; + } + + private string AddTestScript(string request, string path, string param) + { + int index = path.LastIndexOf('/'); + + string lluidStr = path.Substring(index+1); + + LLUUID id; + + if( LLUUID.TryParse( lluidStr, out id ) ) + { + // This is just here for concept purposes... Remove! + m_world.AddScript( m_world.Entities[id], new FollowRandomAvatar()); + return String.Format("Added new script to object [{0}]", id); + } + else + { + return String.Format("Couldn't parse [{0}]", lluidStr ); + } + } + + private string GetScriptsPage(string request, string path, string param) + { + return String.Empty; + } + + private string GetEntitiesPage(string request, string path, string param) + { + string responseString; + responseString = "Listing current entities
Listing Inventory
"; + + line = path.Split(delimiter); + if (line.Length > 2) + { + if (line[1] == "ClientInventory") + { + AgentInventory inven = this._inventoryCache.GetAgentsInventory(new libsecondlife.LLUUID(line[2])); + responseString += "Client: " + inven.AgentID.ToStringHyphenated() +"
"; + if (inven != null) + { + foreach (InventoryItem item in inven.InventoryItems.Values) + { + responseString += "InventoryItem: "; + responseString += item.Name +" , "+ item.ItemID +" , "+ item.Type +" , "+ item.FolderID +" , "+ item.AssetID +" , "+ item.Description ; + responseString += "
"; + } + } + } + } + return responseString; + } + + private string GetCachedAssets(string request, string path, string param) + { + return ""; + } + + private string GetAccountsPage(string request, string path, string param) + { + string responseString; + responseString = "Account management
"; + responseString += "Create New Account
"; + responseString += NewAccountForm; + return responseString; + } + + private string GetAdminPage(string request, string path, string param) + { + return AdminPage; + } + + private void LoadAdminPage() + { + try + { + StreamReader SR; + + SR = File.OpenText("testadmin.htm"); + AdminPage = SR.ReadToEnd(); + SR.Close(); + + SR = File.OpenText("newaccountform.htm"); + NewAccountForm = SR.ReadToEnd(); + SR.Close(); + + SR = File.OpenText("login.htm"); + LoginForm = SR.ReadToEnd(); + SR.Close(); + } + catch (Exception e) + { + Console.WriteLine(e.ToString()); + } + + } + + } +} -- cgit v1.1