diff --git a/.nant/local.include b/.nant/local.include
index 114c12d28f..0f3b9cd1ea 100644
--- a/.nant/local.include
+++ b/.nant/local.include
@@ -1,8 +1,23 @@
-
+
+
-
+
+-->
@@ -296,17 +311,3 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/OpenSim/Framework/Servers/VersionInfo.cs b/OpenSim/Framework/Servers/VersionInfo.cs
index ec94b2db61..90b5f57929 100644
--- a/OpenSim/Framework/Servers/VersionInfo.cs
+++ b/OpenSim/Framework/Servers/VersionInfo.cs
@@ -29,7 +29,7 @@ namespace OpenSim
{
public class VersionInfo
{
- private const string VERSION_NUMBER = "0.6.9";
+ private const string VERSION_NUMBER = "0.7";
private const Flavour VERSION_FLAVOUR = Flavour.Dev;
public enum Flavour
@@ -71,4 +71,4 @@ namespace OpenSim
///
public readonly static int MajorInterfaceVersion = 6;
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Framework/WebUtil.cs b/OpenSim/Framework/WebUtil.cs
index 16e44aff44..2843e202be 100644
--- a/OpenSim/Framework/WebUtil.cs
+++ b/OpenSim/Framework/WebUtil.cs
@@ -263,8 +263,12 @@ namespace OpenSim.Framework
foreach (string key in parameters.Keys)
{
- foreach (string value in parameters.GetValues(key))
- items.Add(String.Concat(key, "=", HttpUtility.UrlEncode(value ?? String.Empty)));
+ string[] values = parameters.GetValues(key);
+ if (values != null)
+ {
+ foreach (string value in values)
+ items.Add(String.Concat(key, "=", HttpUtility.UrlEncode(value ?? String.Empty)));
+ }
}
return String.Join("&", items.ToArray());
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 7fed1ea9ed..8a583c11e4 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1266,8 +1266,9 @@ namespace OpenSim.Region.Framework.Scenes
UserAccount account = UserAccountService.GetUserAccount(m_regInfo.ScopeID, first, last);
- if (account != null)
+ if (account == null)
{
+ // Create a new account
account = new UserAccount(m_regInfo.ScopeID, first, last, String.Empty);
if (account.ServiceURLs == null || (account.ServiceURLs != null && account.ServiceURLs.Count == 0))
{
@@ -1325,7 +1326,8 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
- MainConsole.Instance.Output("User account not found. Please enter the name of an existing user");
+ m_regInfo.EstateSettings.EstateOwner = account.PrincipalID;
+ m_regInfo.EstateSettings.Save();
}
}
}
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
index b0112953eb..eb630de9b0 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
@@ -1193,8 +1193,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
else
{
string domain = string.Empty; //m_sceneList[0].CommsManager.NetworkServersInfo.UserURL;
- if (account.ServiceURLs["HomeURI"] != null)
- domain = account.ServiceURLs["HomeURI"].ToString();
+ object homeUriObj;
+ if (account.ServiceURLs.TryGetValue("HomeURI", out homeUriObj) && homeUriObj != null)
+ domain = homeUriObj.ToString();
// They're a local user, use this:
info.RequestID.UserServiceURL = domain;
}
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
index 29c9219040..031b3262b2 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
@@ -177,9 +177,46 @@ namespace OpenSim.Services.Connectors.SimianGrid
public bool SetPassword(UUID principalID, string passwd)
{
- // TODO: Use GetIdentities to find the md5hash identity for principalID
- // and then update it with AddIdentity
- m_log.Error("[AUTH CONNECTOR]: Changing passwords is not implemented yet");
+ // Fetch the user name first
+ NameValueCollection requestArgs = new NameValueCollection
+ {
+ { "RequestMethod", "GetUser" },
+ { "UserID", principalID.ToString() }
+ };
+
+ OSDMap response = WebUtil.PostToService(m_serverUrl, requestArgs);
+ if (response["Success"].AsBoolean() && response["User"] is OSDMap)
+ {
+ OSDMap userMap = (OSDMap)response["User"];
+ string identifier = userMap["Name"].AsString();
+
+ if (!String.IsNullOrEmpty(identifier))
+ {
+ // Add/update the md5hash identity
+ requestArgs = new NameValueCollection
+ {
+ { "RequestMethod", "AddIdentity" },
+ { "Identifier", identifier },
+ { "Credential", "$1$" + Utils.MD5String(passwd) },
+ { "Type", "md5hash" },
+ { "UserID", principalID.ToString() }
+ };
+
+ response = WebUtil.PostToService(m_serverUrl, requestArgs);
+ bool success = response["Success"].AsBoolean();
+
+ if (!success)
+ m_log.WarnFormat("[AUTH CONNECTOR]: Failed to set password for {0} ({1})", identifier, principalID);
+
+ return success;
+ }
+ }
+ else
+ {
+ m_log.Warn("[AUTH CONNECTOR]: Failed to retrieve identities for " + principalID + ": " +
+ response["Message"].AsString());
+ }
+
return false;
}