public void Startup(ConfigurationLoader loader) { m_Scenes = loader.Scenes; m_EstateService = loader.GetService <EstateServiceInterface>(m_EstateServiceName); m_RegionStorage = loader.GetService <GridServiceInterface>(m_RegionStorageName); loader.CommandRegistry.AddShowCommand("estates", ShowEstatesCmd); loader.CommandRegistry.AddChangeCommand("estate", ChangeEstateCmd); loader.CommandRegistry.AddCreateCommand("estate", CreateEstateCmd); loader.CommandRegistry.AddDeleteCommand("estate", DeleteEstateCmd); loader.CommandRegistry.AddAlertCommand("estate", AlertEstateCmd); var avatarNameServicesList = new RwLockedList <AvatarNameServiceInterface>(); IConfig sceneConfig = loader.Config.Configs["DefaultSceneImplementation"]; if (sceneConfig != null) { string avatarNameServices = sceneConfig.GetString("AvatarNameServices", string.Empty); if (!string.IsNullOrEmpty(avatarNameServices)) { foreach (string p in avatarNameServices.Split(',')) { avatarNameServicesList.Add(loader.GetService <AvatarNameServiceInterface>(p.Trim())); } } } m_AvatarNameService = new AggregatingAvatarNameService(avatarNameServicesList); }
public void Startup(ConfigurationLoader loader) { IConfig config = loader.Config.Configs[GetType().FullName]; m_EstateService = loader.GetService <EstateServiceInterface>(config.GetString("EstateService")); m_EstateOwner = new UGUI(config.GetString("EstateOwner")); }
private void HandleRegionExperiencesGet(ViewerAgent agent, AgentCircuit circuit, HttpRequest httpreq) { var allowed = new List <UEI>(); var blocked = new List <UEI>(); SceneInterface scene = circuit.Scene; if (scene == null) { httpreq.ErrorResponse(HttpStatusCode.InternalServerError, "Internal server error"); return; } EstateServiceInterface estateService = scene.EstateService; foreach (EstateExperienceInfo info in estateService.Experiences[scene.ParentEstateID]) { if (info.IsAllowed) { allowed.Add(info.ExperienceID); } else { blocked.Add(info.ExperienceID); } } List <UEI> trusted = estateService.TrustedExperiences[scene.ParentEstateID]; Map resdata = new Map(); AnArray array = new AnArray(); foreach (UEI id in allowed) { array.Add(id.ID); } resdata.Add("allowed", array); array = new AnArray(); foreach (UEI id in blocked) { array.Add(id.ID); } resdata.Add("blocked", array); array = new AnArray(); foreach (UEI id in trusted) { array.Add(id.ID); } resdata.Add("trusted", array); using (HttpResponse res = httpreq.BeginResponse("application/llsd+xml")) { using (Stream o = res.GetOutputStream()) { LlsdXml.Serialize(resdata, o); } } }
public AnArray GetEstateManagersList(ScriptInstance instance) { var res = new AnArray(); lock (instance) { ObjectPart part = instance.Part; ObjectGroup grp = part.ObjectGroup; SceneInterface scene = grp.Scene; EstateServiceInterface estateService = scene.EstateService; foreach (UGUI agent in estateService.EstateManager.All[scene.ParentEstateID]) { res.Add(new LSLKey(agent.ID)); res.Add(agent.HomeURI?.ToString() ?? string.Empty); } } return(res); }
public void Startup(ConfigurationLoader loader) { m_Scenes = loader.Scenes; m_EstateService = loader.GetService <EstateServiceInterface>(m_EstateServiceName); m_RegionStorageService = loader.GetService <GridServiceInterface>(m_RegionStorageName); IAdminWebIF webif = loader.GetAdminWebIF(); m_WebIF = webif; webif.ModuleNames.Add("estates"); webif.JsonMethods.Add("estates.list", HandleList); webif.JsonMethods.Add("estate.get", HandleGet); webif.JsonMethods.Add("estate.update", HandleUpdate); webif.JsonMethods.Add("estate.delete", HandleDelete); webif.JsonMethods.Add("estate.create", HandleCreate); webif.JsonMethods.Add("estate.notice", HandleNotice); webif.AutoGrantRights["estates.manage"].Add("estates.view"); webif.AutoGrantRights["estate.notice"].Add("estates.view"); }
public void Startup(ConfigurationLoader loader) { m_Scenes = loader.Scenes; m_Loader = loader; m_GatekeeperURI = loader.GatekeeperURI; IConfig config = loader.Config.Configs[GetType().FullName]; /* we use same asset id keying here so to make them compatible with the other scripts */ foreach (string key in config.GetKeys()) { if (UUID.TryParse(key, out m_AssetID)) { m_ScriptFile = config.GetString(key); break; } } m_ObjectPermissionsBase = GetPermissions(config, "ObjectPermisionsBase"); m_ObjectPermissionsOwner = GetPermissions(config, "ObjectPermisionsOwner"); m_ObjectPermissionsGroup = GetPermissions(config, "ObjectPermisionsGroup"); m_ObjectPermissionsNext = GetPermissions(config, "ObjectPermisionsNext"); m_ObjectPermissionsEveryone = GetPermissions(config, "ObjectPermisionsEveryone"); m_ScriptPermissionsBase = GetPermissions(config, "ScriptPermisionsBase"); m_ScriptPermissionsOwner = GetPermissions(config, "ScriptPermisionsOwner"); m_ScriptPermissionsGroup = GetPermissions(config, "ScriptPermisionsGroup"); m_ScriptPermissionsNext = GetPermissions(config, "ScriptPermisionsNext"); m_ScriptPermissionsEveryone = GetPermissions(config, "ScriptPermisionsEveryone"); m_LoadOarFileName = config.GetString("OarFilename", string.Empty); m_TimeoutMs = config.GetInt("RunTimeout", 1000); m_RegionID = UUID.Parse(config.GetString("RegionID")); m_RegionOwner = new UGUIWithName(config.GetString("RegionOwner")) { IsAuthoritative = true }; m_EstateOwner = new UGUIWithName(config.GetString("EstateOwner", m_RegionOwner.ToString())) { IsAuthoritative = true }; m_EstateID = (uint)config.GetInt("EstateID", 100); m_EstateName = config.GetString("EstateName", "My Estate"); m_ObjectID = UUID.Parse(config.GetString("ID", UUID.Random.ToString())); m_RegionName = config.GetString("RegionName", "Testing Region"); m_ProductName = config.GetString("RegionProductName", "Mainland"); m_RegionLocation = new GridVector(config.GetString("RegionLocation", "10000,10000"), 256); m_RegionSize = new GridVector(config.GetString("RegionSize", "1,1"), 256); m_RegionAccess = (RegionAccess)Enum.Parse(typeof(RegionAccess), config.GetString("RegionAccess", "PG")); m_RegionPort = config.GetInt("RegionPort", 9300); m_Runner = loader.GetServicesByValue <TestRunner>()[0]; m_Position = Vector3.Parse(config.GetString("Position", "<128, 128, 23>")); m_Rotation = Quaternion.Parse(config.GetString("Rotation", "<0,0,0,1>")); m_ItemID = UUID.Parse(config.GetString("ScriptItemID", UUID.Random.ToString())); m_RezzingObjID = UUID.Parse(config.GetString("RezzingObjectID", UUID.Zero.ToString())); m_ObjectName = config.GetString("ObjectName", "Object"); m_ScriptName = config.GetString("ScriptName", "Script"); string experienceName = config.GetString("ExperienceName", "My Experience"); UUID experienceID; UUID.TryParse(config.GetString("ExperienceID", UUID.Zero.ToString()), out experienceID); m_ExperienceID = new UEI(experienceID, experienceName, null); m_ObjectDescription = config.GetString("ObjectDescription", ""); m_ScriptDescription = config.GetString("ScriptDescription", ""); m_RegionStorage = loader.GetService <GridServiceInterface>("RegionStorage"); m_SceneFactory = loader.GetService <SceneFactoryInterface>("DefaultSceneImplementation"); m_EstateService = loader.GetService <EstateServiceInterface>("EstateService"); m_AvatarNameService = loader.GetService <AvatarNameServiceInterface>("AvatarNameStorage"); m_UserAccountService = loader.GetService <UserAccountServiceInterface>("UserAccountService"); m_AvatarNameService.Store(m_RegionOwner); m_AvatarNameService.Store(m_EstateOwner); try { m_UserAccountService.Add(new UserAccount { Principal = m_RegionOwner, IsLocalToGrid = true, }); } catch { m_Log.Info("UserAccount creation failed for RegionOwner"); } if (!m_EstateOwner.EqualsGrid(m_RegionOwner)) { try { m_UserAccountService.Add(new UserAccount { Principal = m_RegionOwner, IsLocalToGrid = true, }); } catch { m_Log.Info("UserAccount creation failed for EstateOwner"); } } m_ObjectOwner = new UGUIWithName(config.GetString("ObjectOwner")) { IsAuthoritative = true }; m_AvatarNameService.Store(m_ObjectOwner); if (config.Contains("ObjectCreator")) { m_ObjectCreator = new UGUIWithName(config.GetString("ObjectCreator")) { IsAuthoritative = true }; m_AvatarNameService.Store(m_ObjectCreator); try { m_UserAccountService.Add(new UserAccount { Principal = m_ObjectCreator, IsLocalToGrid = true, }); } catch { /* intentionally ignored */ } } else { m_ObjectCreator = m_ObjectOwner; } if (config.Contains("ObjectLastOwner")) { m_ObjectLastOwner = new UGUIWithName(config.GetString("ObjectLastOwner")) { IsAuthoritative = true }; m_AvatarNameService.Store(m_ObjectLastOwner); try { m_UserAccountService.Add(new UserAccount { Principal = m_ObjectLastOwner, IsLocalToGrid = true, }); } catch { /* intentionally ignored */ } } else { m_ObjectLastOwner = m_ObjectOwner; } m_ScriptOwner = new UGUIWithName(config.GetString("ScriptOwner")) { IsAuthoritative = true }; m_AvatarNameService.Store(m_ScriptOwner); if (config.Contains("ScriptCreator")) { m_ScriptCreator = new UGUIWithName(config.GetString("ScriptCreator")) { IsAuthoritative = true }; m_AvatarNameService.Store(m_ScriptCreator); try { m_UserAccountService.Add(new UserAccount { Principal = m_ScriptCreator, IsLocalToGrid = true, }); } catch { /* intentionally ignored */ } } else { m_ScriptCreator = m_ScriptOwner; } if (config.Contains("ScriptLastOwner")) { m_ScriptLastOwner = new UGUIWithName(config.GetString("ScriptLastOwner")) { IsAuthoritative = true }; m_AvatarNameService.Store(m_ScriptLastOwner); try { m_UserAccountService.Add(new UserAccount { Principal = m_ScriptLastOwner, IsLocalToGrid = true, }); } catch { /* intentionally ignored */ } } else { m_ScriptLastOwner = m_ScriptOwner; } m_StartParameter = config.GetInt("StartParameter", 0); if (string.IsNullOrEmpty(m_ScriptFile)) { throw new ArgumentException("Script filename and UUID missing"); } m_AdditionalObjectConfigs = config.GetString("AdditionalObjects", string.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (m_AdditionalObjectConfigs.Length == 1 && m_AdditionalObjectConfigs[0] == string.Empty) { m_AdditionalObjectConfigs = new string[0]; } m_AdditionalInventoryConfigs = config.GetString("AdditionalInventories", string.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (m_AdditionalInventoryConfigs.Length == 1 && m_AdditionalInventoryConfigs[0] == string.Empty) { m_AdditionalInventoryConfigs = new string[0]; } m_AssetSourcesConfig = config.GetString("AssetSources", string.Empty); m_ScriptStatesConfig = config.GetString("ScriptStates", string.Empty); CompilerRegistry.ScriptCompilers.DefaultCompilerName = config.GetString("DefaultCompiler"); }