aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs10
-rw-r--r--OpenSim/Server/Handlers/UserAccounts/UserAccountServerPostHandler.cs25
-rw-r--r--OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs15
-rw-r--r--OpenSim/Services/Interfaces/IUserAccountService.cs (renamed from OpenSim/Services/Interfaces/IUserService.cs)8
-rw-r--r--OpenSim/Services/UserAccountService/UserAccountService.cs82
-rw-r--r--prebuild.xml1
6 files changed, 77 insertions, 64 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
index ce8c3a5..f55de5a 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
@@ -159,15 +159,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
159 159
160 // Update all updatable fields 160 // Update all updatable fields
161 // 161 //
162 public bool SetUserAccount(UserAccount data) 162 public bool StoreUserAccount(UserAccount data)
163 { 163 {
164 return m_UserService.SetUserAccount(data); 164 return m_UserService.StoreUserAccount(data);
165 }
166
167 // Creates a user data record
168 public bool CreateUserAccount(UserAccount data)
169 {
170 return m_UserService.CreateUserAccount(data);
171 } 165 }
172 166
173 #endregion 167 #endregion
diff --git a/OpenSim/Server/Handlers/UserAccounts/UserAccountServerPostHandler.cs b/OpenSim/Server/Handlers/UserAccounts/UserAccountServerPostHandler.cs
index a92148c..544ffea 100644
--- a/OpenSim/Server/Handlers/UserAccounts/UserAccountServerPostHandler.cs
+++ b/OpenSim/Server/Handlers/UserAccounts/UserAccountServerPostHandler.cs
@@ -85,10 +85,8 @@ namespace OpenSim.Server.Handlers.UserAccounts
85 return GetAccount(request); 85 return GetAccount(request);
86 case "getaccounts": 86 case "getaccounts":
87 return GetAccounts(request); 87 return GetAccounts(request);
88 case "createaccount":
89 return CreateAccount(request);
90 case "setaccount": 88 case "setaccount":
91 return SetAccount(request); 89 return StoreAccount(request);
92 } 90 }
93 m_log.DebugFormat("[PRESENCE HANDLER]: unknown method request: {0}", method); 91 m_log.DebugFormat("[PRESENCE HANDLER]: unknown method request: {0}", method);
94 } 92 }
@@ -174,24 +172,7 @@ namespace OpenSim.Server.Handlers.UserAccounts
174 return encoding.GetBytes(xmlString); 172 return encoding.GetBytes(xmlString);
175 } 173 }
176 174
177 byte[] CreateAccount(Dictionary<string, object> request) 175 byte[] StoreAccount(Dictionary<string, object> request)
178 {
179 if (!request.ContainsKey("account"))
180 return FailureResult();
181 if (request["account"] == null)
182 return FailureResult();
183 if (!(request["account"] is Dictionary<string, object>))
184 return FailureResult();
185
186 UserAccount account = new UserAccount((Dictionary<string, object>) request["account"]);
187
188 if (m_UserAccountService.CreateUserAccount(account))
189 return SuccessResult();
190
191 return FailureResult();
192 }
193
194 byte[] SetAccount(Dictionary<string, object> request)
195 { 176 {
196 if (!request.ContainsKey("account")) 177 if (!request.ContainsKey("account"))
197 return FailureResult(); 178 return FailureResult();
@@ -202,7 +183,7 @@ namespace OpenSim.Server.Handlers.UserAccounts
202 183
203 UserAccount account = new UserAccount((Dictionary<string, object>)request["account"]); 184 UserAccount account = new UserAccount((Dictionary<string, object>)request["account"]);
204 185
205 if (m_UserAccountService.SetUserAccount(account)) 186 if (m_UserAccountService.StoreUserAccount(account))
206 return SuccessResult(); 187 return SuccessResult();
207 188
208 return FailureResult(); 189 return FailureResult();
diff --git a/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs b/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs
index d4b906a..46313d9 100644
--- a/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs
+++ b/OpenSim/Services/Connectors/UserAccounts/UserAccountServiceConnector.cs
@@ -186,7 +186,7 @@ namespace OpenSim.Services.Connectors
186 return accounts; 186 return accounts;
187 } 187 }
188 188
189 public bool SetUserAccount(UserAccount data) 189 public bool StoreUserAccount(UserAccount data)
190 { 190 {
191 Dictionary<string, object> sendData = new Dictionary<string, object>(); 191 Dictionary<string, object> sendData = new Dictionary<string, object>();
192 //sendData["SCOPEID"] = scopeID.ToString(); 192 //sendData["SCOPEID"] = scopeID.ToString();
@@ -199,19 +199,6 @@ namespace OpenSim.Services.Connectors
199 return SendAndGetBoolReply(sendData); 199 return SendAndGetBoolReply(sendData);
200 } 200 }
201 201
202 public bool CreateUserAccount(UserAccount data)
203 {
204 Dictionary<string, object> sendData = new Dictionary<string, object>();
205 //sendData["SCOPEID"] = scopeID.ToString();
206 sendData["VERSIONMIN"] = ProtocolVersions.ClientProtocolVersionMin.ToString();
207 sendData["VERSIONMAX"] = ProtocolVersions.ClientProtocolVersionMax.ToString();
208 sendData["METHOD"] = "createaccount";
209
210 sendData["account"] = data.ToKeyValuePairs();
211
212 return SendAndGetBoolReply(sendData);
213 }
214
215 private UserAccount SendAndGetReply(Dictionary<string, object> sendData) 202 private UserAccount SendAndGetReply(Dictionary<string, object> sendData)
216 { 203 {
217 string reply = string.Empty; 204 string reply = string.Empty;
diff --git a/OpenSim/Services/Interfaces/IUserService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs
index 1bdaaab..b2d5d48 100644
--- a/OpenSim/Services/Interfaces/IUserService.cs
+++ b/OpenSim/Services/Interfaces/IUserAccountService.cs
@@ -95,11 +95,9 @@ namespace OpenSim.Services.Interfaces
95 // 95 //
96 List<UserAccount> GetUserAccounts(UUID scopeID, string query); 96 List<UserAccount> GetUserAccounts(UUID scopeID, string query);
97 97
98 // Update all updatable fields 98 // Store the data given, wich replaces the sotred data, therefore
99 // must be complete.
99 // 100 //
100 bool SetUserAccount(UserAccount data); 101 bool StoreUserAccount(UserAccount data);
101
102 // Creates a user data record
103 bool CreateUserAccount(UserAccount data);
104 } 102 }
105} 103}
diff --git a/OpenSim/Services/UserAccountService/UserAccountService.cs b/OpenSim/Services/UserAccountService/UserAccountService.cs
index 0270f9d..706da84 100644
--- a/OpenSim/Services/UserAccountService/UserAccountService.cs
+++ b/OpenSim/Services/UserAccountService/UserAccountService.cs
@@ -62,33 +62,85 @@ namespace OpenSim.Services.UserAccountService
62 if (d.Length < 1) 62 if (d.Length < 1)
63 return null; 63 return null;
64 64
65 return MakeUserAccount(d[0]);
66 }
67
68 private UserAccount MakeUserAccount(UserAccountData d)
69 {
65 UserAccount u = new UserAccount(); 70 UserAccount u = new UserAccount();
66 u.FirstName = d[0].FirstName; 71 u.FirstName = d.FirstName;
67 u.LastName = d[0].LastName; 72 u.LastName = d.LastName;
68 u.PrincipalID = d[0].PrincipalID; 73 u.PrincipalID = d.PrincipalID;
69 u.ScopeID = d[0].ScopeID; 74 u.ScopeID = d.ScopeID;
70 u.Email = d[0].Data["Email"].ToString(); 75 u.Email = d.Data["Email"].ToString();
71 u.Created = Convert.ToInt32(d[0].Data["Created"].ToString()); 76 u.Created = Convert.ToInt32(d.Data["Created"].ToString());
72 77
73 return null; 78 string[] URLs = d.Data["ServiceURLs"].ToString().Split(new char[] {' '});
79 u.ServiceURLs = new Dictionary<string, object>();
80
81 foreach(string url in URLs)
82 {
83 string[] parts = url.Split(new char[] {'='});
84
85 if (parts.Length != 2)
86 continue;
87
88 string name = System.Web.HttpUtility.UrlDecode(parts[0]);
89 string val = System.Web.HttpUtility.UrlDecode(parts[1]);
90
91 u.ServiceURLs[name] = val;
92 }
93
94 return u;
74 } 95 }
75 96
76 public UserAccount GetUserAccount(UUID scopeID, string email) 97 public UserAccount GetUserAccount(UUID scopeID, string email)
77 { 98 {
78 return null; 99 UserAccountData[] d;
100
101 if (scopeID != UUID.Zero)
102 {
103 d = m_Database.Get(
104 new string[] {"ScopeID", "Email"},
105 new string[] {scopeID.ToString(), email});
106 }
107 else
108 {
109 d = m_Database.Get(
110 new string[] {"Email"},
111 new string[] {email});
112 }
113
114 if (d.Length < 1)
115 return null;
116
117 return MakeUserAccount(d[0]);
79 } 118 }
80 119
81 public UserAccount GetUserAccount(UUID scopeID, UUID userID) 120 public UserAccount GetUserAccount(UUID scopeID, UUID principalID)
82 { 121 {
83 return null; 122 UserAccountData[] d;
84 }
85 123
86 public bool SetUserAccount(UserAccount data) 124 if (scopeID != UUID.Zero)
87 { 125 {
88 return false; 126 d = m_Database.Get(
127 new string[] {"ScopeID", "PrincipalID"},
128 new string[] {scopeID.ToString(), principalID.ToString()});
129 }
130 else
131 {
132 d = m_Database.Get(
133 new string[] {"PrincipalID"},
134 new string[] {principalID.ToString()});
135 }
136
137 if (d.Length < 1)
138 return null;
139
140 return MakeUserAccount(d[0]);
89 } 141 }
90 142
91 public bool CreateUserAccount(UserAccount data) 143 public bool StoreUserAccount(UserAccount data)
92 { 144 {
93 return false; 145 return false;
94 } 146 }
diff --git a/prebuild.xml b/prebuild.xml
index 7e7ce28..19cd6af 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -1052,6 +1052,7 @@
1052 1052
1053 <ReferencePath>../../../bin/</ReferencePath> 1053 <ReferencePath>../../../bin/</ReferencePath>
1054 <Reference name="System"/> 1054 <Reference name="System"/>
1055 <Reference name="System.Web"/>
1055 <Reference name="OpenMetaverseTypes.dll"/> 1056 <Reference name="OpenMetaverseTypes.dll"/>
1056 <Reference name="OpenMetaverse.dll"/> 1057 <Reference name="OpenMetaverse.dll"/>
1057 <Reference name="OpenSim.Framework"/> 1058 <Reference name="OpenSim.Framework"/>