From a70c7756b33dc11d18a18f222bcd92548ee6a256 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 22 Jul 2010 03:01:50 +0100
Subject: Add sending of the avatar interests and configuration of the profiles
module as an OpenSim profile module to Simian grid services. Patch by
Dimentox, thank you. Applied with changes.
---
.../Connectors/SimianGrid/SimianProfiles.cs | 35 ++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianProfiles.cs b/OpenSim/Services/Connectors/SimianGrid/SimianProfiles.cs
index fbf4648..704790e 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianProfiles.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianProfiles.cs
@@ -88,7 +88,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source)
{
- if (Simian.IsSimianEnabled(source, "UserAccountServices", this.Name))
+ if (Simian.IsSimianEnabled(source, "UserAccountServices", "SimianUserAccountServiceConnector"))
{
IConfig gridConfig = source.Configs["UserAccountService"];
if (gridConfig == null)
@@ -108,6 +108,23 @@ namespace OpenSim.Services.Connectors.SimianGrid
serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
+ IConfig profilesConfig = source.Configs["Profiles"];
+ if (profilesConfig == null)
+ {
+ // Do not run this module by default.
+ return;
+ }
+ else
+ {
+ // if profiles aren't enabled, we're not needed.
+ // if we're not specified as the connector to use, then we're not wanted
+ if (profilesConfig.GetString("Module", String.Empty) != Name)
+ {
+
+ return;
+ }
+ m_log.InfoFormat("[SIMIAN ACCOUNT CONNECTOR]: Initializing {0}", this.Name);
+ }
}
}
@@ -135,6 +152,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
// Profiles
client.OnRequestAvatarProperties += RequestAvatarPropertiesHandler;
+
client.OnUpdateAvatarProperties += UpdateAvatarPropertiesHandler;
client.OnAvatarInterestUpdate += AvatarInterestUpdateHandler;
client.OnUserInfoRequest += UserInfoRequestHandler;
@@ -302,12 +320,25 @@ namespace OpenSim.Services.Connectors.SimianGrid
System.Globalization.CultureInfo.InvariantCulture), charterMember, about["FLAbout"].AsString(), (uint)flags,
about["FLImage"].AsUUID(), about["Image"].AsUUID(), about["URL"].AsString(), user["Partner"].AsUUID());
+ OSDMap interests = null;
+ if (user.ContainsKey("LLInterests"))
+ {
+ try
+ {
+ interests = OSDParser.DeserializeJson(user["LLInterests"].AsString()) as OSDMap;
+ client.SendAvatarInterestsReply(avatarID, interests["WantMask"].AsUInteger(), interests["WantText"].AsString(), interests["SkillsMask"].AsUInteger(), interests["SkillsText"].AsString(), interests["languages"].AsString());
+ }
+ catch { }
+ }
+
+ if (about == null)
+ about = new OSDMap(0);
}
else
{
m_log.Warn("[SIMIAN PROFILES]: Failed to fetch profile information for " + client.Name + ", returning default values");
client.SendAvatarProperties(avatarID, String.Empty, "1/1/1970", Utils.EmptyBytes,
- String.Empty, (uint)flags, UUID.Zero, UUID.Zero, String.Empty, UUID.Zero);
+ String.Empty, (uint)flags, UUID.Zero, UUID.Zero, String.Empty, UUID.Zero);
}
}
--
cgit v1.1
From 7b471bb21c534453f32c52d0a30d69bd4d49d83c Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 22 Jul 2010 03:04:34 +0100
Subject: Adding sample configuration to previous patch
---
bin/config-include/SimianGrid.ini | 3 +++
1 file changed, 3 insertions(+)
diff --git a/bin/config-include/SimianGrid.ini b/bin/config-include/SimianGrid.ini
index 41deb92..65d4ea6 100644
--- a/bin/config-include/SimianGrid.ini
+++ b/bin/config-include/SimianGrid.ini
@@ -65,3 +65,6 @@
MessagingModule = GroupsMessagingModule
MessagingEnabled = true
ServicesConnectorModule = SimianGroupsServicesConnector
+
+[Profiles]
+ Module = SimianProfiles
--
cgit v1.1
From 0c0ac65d38c1c203ab318ace1a393baa625c48ba Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Thu, 22 Jul 2010 04:00:24 -0700
Subject: Added ': ' to password prompt. Mantis #4851
---
OpenSim/Framework/Console/ConsoleBase.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/OpenSim/Framework/Console/ConsoleBase.cs b/OpenSim/Framework/Console/ConsoleBase.cs
index b70d1db..aab920b 100755
--- a/OpenSim/Framework/Console/ConsoleBase.cs
+++ b/OpenSim/Framework/Console/ConsoleBase.cs
@@ -118,7 +118,7 @@ namespace OpenSim.Framework.Console
// (Done with no echo and suitable for passwords)
public string PasswdPrompt(string p)
{
- return ReadLine(p, false, false);
+ return ReadLine(String.Format("{0}: ", p), false, false);
}
public virtual string ReadLine(string p, bool isCommand, bool e)
--
cgit v1.1
From 2f6fa373eff4b2cb74788c78d10018af6e9f11aa Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 23 Jul 2010 22:36:03 +0100
Subject: in nant distbin, specifically only delete Regions.ini instead of the
entire Regions directory
---
.nant/local.include | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.nant/local.include b/.nant/local.include
index 0b6f9fe..8e4bc4d 100644
--- a/.nant/local.include
+++ b/.nant/local.include
@@ -29,7 +29,7 @@
-
+
--
cgit v1.1
From 1a03a0b281d343ce5b962c3a85b4b709b1277896 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 23 Jul 2010 23:12:30 +0100
Subject: remove compile.bat from a created binary distribution
---
.nant/local.include | 1 +
1 file changed, 1 insertion(+)
diff --git a/.nant/local.include b/.nant/local.include
index 8e4bc4d..0279f25 100644
--- a/.nant/local.include
+++ b/.nant/local.include
@@ -20,6 +20,7 @@
+
--
cgit v1.1
From 4dbff62ef505dae8eb8f0e058e98fafb45079fb2 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sat, 24 Jul 2010 23:15:06 +0100
Subject: Fix some inventory issues
---
.../Services/InventoryService/XInventoryService.cs | 29 ++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs
index bb24292..79afc8d 100644
--- a/OpenSim/Services/InventoryService/XInventoryService.cs
+++ b/OpenSim/Services/InventoryService/XInventoryService.cs
@@ -308,6 +308,8 @@ namespace OpenSim.Services.InventoryService
//
foreach (UUID id in folderIDs)
{
+ if (!ParentIsTrash(id))
+ continue;
InventoryFolderBase f = new InventoryFolderBase();
f.ID = id;
PurgeFolder(f);
@@ -319,6 +321,9 @@ namespace OpenSim.Services.InventoryService
public virtual bool PurgeFolder(InventoryFolderBase folder)
{
+ if (!ParentIsTrash(folder.ID))
+ return false;
+
XInventoryFolder[] subFolders = m_Database.GetFolders(
new string[] { "parentFolderID" },
new string[] { folder.ID.ToString() });
@@ -519,5 +524,29 @@ namespace OpenSim.Services.InventoryService
return newItem;
}
+
+ private bool ParentIsTrash(UUID folderID)
+ {
+ XInventoryFolder[] folder = m_Database.GetFolders(new string[] {"folderID"}, new string[] {folderID.ToString()});
+ if (folder.Length < 1)
+ return false;
+
+ UUID parentFolder = folder[0].parentFolderID;
+
+ while (parentFolder != UUID.Zero)
+ {
+ XInventoryFolder[] parent = m_Database.GetFolders(new string[] {"folderID"}, new string[] {parentFolder.ToString()});
+ if (parent.Length < 1)
+ return false;
+
+ if (parent[0].type == (int)AssetType.TrashFolder)
+ return true;
+ if (parent[0].type == (int)AssetType.RootFolder)
+ return false;
+
+ parentFolder = parent[0].parentFolderID;
+ }
+ return false;
+ }
}
}
--
cgit v1.1
From aa7cadca5233dccf478af93be88b59fc08fc2ecd Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sat, 24 Jul 2010 23:36:07 +0100
Subject: Add some options
---
OpenSim/Services/InventoryService/XInventoryService.cs | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs
index 79afc8d..f581f76 100644
--- a/OpenSim/Services/InventoryService/XInventoryService.cs
+++ b/OpenSim/Services/InventoryService/XInventoryService.cs
@@ -45,6 +45,7 @@ namespace OpenSim.Services.InventoryService
MethodBase.GetCurrentMethod().DeclaringType);
protected IXInventoryData m_Database;
+ protected bool m_AllowDelete = true;
public XInventoryService(IConfigSource config) : base(config)
{
@@ -60,6 +61,7 @@ namespace OpenSim.Services.InventoryService
{
dllName = authConfig.GetString("StorageProvider", dllName);
connString = authConfig.GetString("ConnectionString", connString);
+ m_AllowDelete = authConfig.GetBoolean("AllowDelete", true);
// realm = authConfig.GetString("Realm", realm);
}
@@ -304,6 +306,9 @@ namespace OpenSim.Services.InventoryService
//
public virtual bool DeleteFolders(UUID principalID, List folderIDs)
{
+ if (!m_AllowDelete)
+ return false;
+
// Ignore principal ID, it's bogus at connector level
//
foreach (UUID id in folderIDs)
@@ -321,6 +326,9 @@ namespace OpenSim.Services.InventoryService
public virtual bool PurgeFolder(InventoryFolderBase folder)
{
+ if (!m_AllowDelete)
+ return false;
+
if (!ParentIsTrash(folder.ID))
return false;
@@ -363,6 +371,9 @@ namespace OpenSim.Services.InventoryService
public virtual bool DeleteItems(UUID principalID, List itemIDs)
{
+ if (!m_AllowDelete)
+ return false;
+
// Just use the ID... *facepalms*
//
foreach (UUID id in itemIDs)
--
cgit v1.1
From 696b6c727ffc15c47b6be06e6fb4ae750fe61e6b Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Thu, 29 Jul 2010 16:33:20 +0200
Subject: Allow gods and estate managers/owners to be unaffected by parcel bans
---
OpenSim/Region/CoreModules/World/Land/LandObject.cs | 6 ++++++
.../CoreModules/World/Permissions/PermissionsModule.cs | 1 +
OpenSim/Region/Framework/Scenes/Scene.Permissions.cs | 17 +++++++++++++++++
3 files changed, 24 insertions(+)
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index 2a87da2..6864629 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -283,6 +283,9 @@ namespace OpenSim.Region.CoreModules.World.Land
public bool IsBannedFromLand(UUID avatar)
{
+ if (m_scene.Permissions.IsAdministrator(avatar))
+ return false;
+
if ((LandData.Flags & (uint) ParcelFlags.UseBanList) > 0)
{
ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
@@ -301,6 +304,9 @@ namespace OpenSim.Region.CoreModules.World.Land
public bool IsRestrictedFromLand(UUID avatar)
{
+ if (m_scene.Permissions.IsAdministrator(avatar))
+ return false;
+
if ((LandData.Flags & (uint) ParcelFlags.UseAccessList) > 0)
{
ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index 69b247c..1d70546 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -209,6 +209,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
m_scene.Permissions.OnDeedParcel += CanDeedParcel;
m_scene.Permissions.OnDeedObject += CanDeedObject;
m_scene.Permissions.OnIsGod += IsGod;
+ m_scene.Permissions.OnIsAdministrator += IsAdministrator;
m_scene.Permissions.OnDuplicateObject += CanDuplicateObject;
m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED
m_scene.Permissions.OnEditObject += CanEditObject; //MAYBE FULLY IMPLEMENTED
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
index 7dab04f..a523351 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
@@ -64,6 +64,7 @@ namespace OpenSim.Region.Framework.Scenes
public delegate bool RunConsoleCommandHandler(UUID user, Scene requestFromScene);
public delegate bool IssueEstateCommandHandler(UUID user, Scene requestFromScene, bool ownerCommand);
public delegate bool IsGodHandler(UUID user, Scene requestFromScene);
+ public delegate bool IsAdministratorHandler(UUID user);
public delegate bool EditParcelHandler(UUID user, ILandObject parcel, Scene scene);
public delegate bool SellParcelHandler(UUID user, ILandObject parcel, Scene scene);
public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene);
@@ -122,6 +123,7 @@ namespace OpenSim.Region.Framework.Scenes
public event RunConsoleCommandHandler OnRunConsoleCommand;
public event IssueEstateCommandHandler OnIssueEstateCommand;
public event IsGodHandler OnIsGod;
+ public event IsAdministratorHandler OnIsAdministrator;
public event EditParcelHandler OnEditParcel;
public event SellParcelHandler OnSellParcel;
public event AbandonParcelHandler OnAbandonParcel;
@@ -652,6 +654,21 @@ namespace OpenSim.Region.Framework.Scenes
}
return true;
}
+
+ public bool IsAdministrator(UUID user)
+ {
+ IsAdministratorHandler handler = OnIsAdministrator;
+ if (handler != null)
+ {
+ Delegate[] list = handler.GetInvocationList();
+ foreach (IsAdministratorHandler h in list)
+ {
+ if (h(user) == false)
+ return false;
+ }
+ }
+ return true;
+ }
#endregion
#region EDIT PARCEL
--
cgit v1.1