* Added packing/unpacking of the Home fields in PresenceInfo
* Cleaned up IUserService and beefed up UserAccoutDataslimupdates
parent
3249d5be9a
commit
c164b85ea6
|
@ -40,7 +40,7 @@ namespace OpenSim.Data
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// An interface for connecting to the authentication datastore
|
||||
/// An interface for connecting to the user accounts datastore
|
||||
/// </summary>
|
||||
public interface IUserAccountData
|
||||
{
|
||||
|
|
|
@ -65,6 +65,12 @@ namespace OpenSim.Services.Interfaces
|
|||
Boolean.TryParse(kvp["online"].ToString(), out Online);
|
||||
if (kvp.ContainsKey("position"))
|
||||
Vector3.TryParse(kvp["position"].ToString(), out Position);
|
||||
if (kvp.ContainsKey("HomeRegionID"))
|
||||
UUID.TryParse(kvp["HomeRegionID"].ToString(), out HomeRegionID);
|
||||
if (kvp.ContainsKey("HomePosition"))
|
||||
Vector3.TryParse(kvp["HomePosition"].ToString(), out HomePosition);
|
||||
if (kvp.ContainsKey("HomeLookAt"))
|
||||
Vector3.TryParse(kvp["HomeLookAt"].ToString(), out HomeLookAt);
|
||||
|
||||
}
|
||||
|
||||
|
@ -78,6 +84,9 @@ namespace OpenSim.Services.Interfaces
|
|||
result["logout"] = Logout.ToString();
|
||||
result["position"] = Position.ToString();
|
||||
result["lookAt"] = LookAt.ToString();
|
||||
result["HomeRegionID"] = HomeRegionID.ToString();
|
||||
result["HomePosition"] = HomePosition.ToString();
|
||||
result["HomeLookAt"] = HomeLookAt.ToString();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using OpenMetaverse;
|
||||
|
||||
|
@ -36,37 +37,17 @@ namespace OpenSim.Services.Interfaces
|
|||
{
|
||||
}
|
||||
|
||||
public UserAccount(UUID userID, UUID homeRegionID, float homePositionX,
|
||||
float homePositionY, float homePositionZ, float homeLookAtX,
|
||||
float homeLookAtY, float homeLookAtZ)
|
||||
public UserAccount(UUID userID)
|
||||
{
|
||||
UserID = userID;
|
||||
HomeRegionID = homeRegionID;
|
||||
HomePositionX = homePositionX;
|
||||
HomePositionY = homePositionY;
|
||||
HomePositionZ = homePositionZ;
|
||||
HomeLookAtX = homeLookAtX;
|
||||
HomeLookAtY = homeLookAtY;
|
||||
HomeLookAtZ = homeLookAtZ;
|
||||
}
|
||||
|
||||
public string FirstName;
|
||||
public string LastName;
|
||||
public string Email;
|
||||
public UUID UserID;
|
||||
public UUID ScopeID;
|
||||
|
||||
// For informational purposes only!
|
||||
//
|
||||
public string HomeRegionName;
|
||||
|
||||
public UUID HomeRegionID;
|
||||
public float HomePositionX;
|
||||
public float HomePositionY;
|
||||
public float HomePositionZ;
|
||||
public float HomeLookAtX;
|
||||
public float HomeLookAtY;
|
||||
public float HomeLookAtZ;
|
||||
|
||||
// These are here because they
|
||||
// concern the account rather than
|
||||
// the profile. They just happen to
|
||||
|
@ -76,6 +57,41 @@ namespace OpenSim.Services.Interfaces
|
|||
public int UserFlags;
|
||||
public string AccountType;
|
||||
|
||||
public UserAccount(Dictionary<string, object> kvp)
|
||||
{
|
||||
if (kvp.ContainsKey("FirstName"))
|
||||
FirstName = kvp["FirstName"].ToString();
|
||||
if (kvp.ContainsKey("LastName"))
|
||||
LastName = kvp["LastName"].ToString();
|
||||
if (kvp.ContainsKey("Email"))
|
||||
Email = kvp["Email"].ToString();
|
||||
if (kvp.ContainsKey("UserID"))
|
||||
UUID.TryParse(kvp["UserID"].ToString(), out UserID);
|
||||
if (kvp.ContainsKey("ScopeID"))
|
||||
UUID.TryParse(kvp["ScopeID"].ToString(), out ScopeID);
|
||||
if (kvp.ContainsKey("GodLevel"))
|
||||
Int32.TryParse(kvp["GodLevel"].ToString(), out GodLevel);
|
||||
if (kvp.ContainsKey("UserFlags"))
|
||||
Int32.TryParse(kvp["UserFlags"].ToString(), out UserFlags);
|
||||
if (kvp.ContainsKey("AccountType"))
|
||||
AccountType = kvp["AccountType"].ToString();
|
||||
|
||||
}
|
||||
|
||||
public Dictionary<string, object> ToKeyValuePairs()
|
||||
{
|
||||
Dictionary<string, object> result = new Dictionary<string, object>();
|
||||
result["FirstName"] = FirstName;
|
||||
result["LastName"] = LastName;
|
||||
result["Email"] = Email;
|
||||
result["UserID"] = UserID.ToString();
|
||||
result["ScopeID"] = ScopeID.ToString();
|
||||
result["GodLevel"] = GodLevel.ToString();
|
||||
result["UserFlags"] = UserFlags.ToString();
|
||||
result["AccountType"] = AccountType.ToString();
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
public interface IUserAccountService
|
||||
|
@ -87,12 +103,6 @@ namespace OpenSim.Services.Interfaces
|
|||
//
|
||||
List<UserAccount> GetUserAccount(UUID scopeID, string query);
|
||||
|
||||
|
||||
// This will set only the home region portion of the data!
|
||||
// Can't be used to set god level, flags, type or change the name!
|
||||
//
|
||||
bool SetHomePosition(UserAccount data, UUID RegionID, UUID RegionSecret);
|
||||
|
||||
// Update all updatable fields
|
||||
//
|
||||
bool SetUserAccount(UserAccount data, UUID PrincipalID, string token);
|
||||
|
|
Loading…
Reference in New Issue