Merge branch 'master' into careminster-presence-refactor
commit
7a9e246ccd
|
@ -20,6 +20,7 @@
|
|||
<delete dir="${distbindir}/.nant"/>
|
||||
<delete>
|
||||
<fileset basedir="${distbindir}">
|
||||
<include name="compile.bat"/>
|
||||
<include name="BUILDING.txt"/>
|
||||
<include name="Makefile"/>
|
||||
<include name="nant-color"/>
|
||||
|
@ -29,7 +30,7 @@
|
|||
<include name="TESTING.txt"/>
|
||||
<include name="TestResult.xml"/>
|
||||
<include name="bin/OpenSim.Server.ini"/>
|
||||
<include name="bin/Regions/*"/>
|
||||
<include name="bin/Regions/Regions.ini"/>
|
||||
<include name="bin/*.db"/>
|
||||
<include name="**/.git/**"/>
|
||||
<include name=".gitignore"/>
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,10 +306,15 @@ namespace OpenSim.Services.InventoryService
|
|||
//
|
||||
public virtual bool DeleteFolders(UUID principalID, List<UUID> folderIDs)
|
||||
{
|
||||
if (!m_AllowDelete)
|
||||
return false;
|
||||
|
||||
// Ignore principal ID, it's bogus at connector level
|
||||
//
|
||||
foreach (UUID id in folderIDs)
|
||||
{
|
||||
if (!ParentIsTrash(id))
|
||||
continue;
|
||||
InventoryFolderBase f = new InventoryFolderBase();
|
||||
f.ID = id;
|
||||
PurgeFolder(f);
|
||||
|
@ -319,6 +326,12 @@ namespace OpenSim.Services.InventoryService
|
|||
|
||||
public virtual bool PurgeFolder(InventoryFolderBase folder)
|
||||
{
|
||||
if (!m_AllowDelete)
|
||||
return false;
|
||||
|
||||
if (!ParentIsTrash(folder.ID))
|
||||
return false;
|
||||
|
||||
XInventoryFolder[] subFolders = m_Database.GetFolders(
|
||||
new string[] { "parentFolderID" },
|
||||
new string[] { folder.ID.ToString() });
|
||||
|
@ -358,6 +371,9 @@ namespace OpenSim.Services.InventoryService
|
|||
|
||||
public virtual bool DeleteItems(UUID principalID, List<UUID> itemIDs)
|
||||
{
|
||||
if (!m_AllowDelete)
|
||||
return false;
|
||||
|
||||
// Just use the ID... *facepalms*
|
||||
//
|
||||
foreach (UUID id in itemIDs)
|
||||
|
@ -519,5 +535,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,3 +65,6 @@
|
|||
MessagingModule = GroupsMessagingModule
|
||||
MessagingEnabled = true
|
||||
ServicesConnectorModule = SimianGroupsServicesConnector
|
||||
|
||||
[Profiles]
|
||||
Module = SimianProfiles
|
||||
|
|
Loading…
Reference in New Issue