diff options
7 files changed, 31 insertions, 15 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs index 1002b85..1bb4704 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs | |||
@@ -182,9 +182,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts | |||
182 | return UserAccountService.GetUserAccount(scopeID, Email); | 182 | return UserAccountService.GetUserAccount(scopeID, Email); |
183 | } | 183 | } |
184 | 184 | ||
185 | public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported) | 185 | public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs) |
186 | { | 186 | { |
187 | return UserAccountService.GetUserAccounts(scopeID, IDs, out suported); | 187 | return UserAccountService.GetUserAccounts(scopeID, IDs); |
188 | } | 188 | } |
189 | 189 | ||
190 | 190 | ||
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs index fb5fae1..ce1754f 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs | |||
@@ -160,9 +160,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts | |||
160 | return account; | 160 | return account; |
161 | } | 161 | } |
162 | 162 | ||
163 | public override List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported) | 163 | public override List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs) |
164 | { | 164 | { |
165 | suported = true; | ||
166 | List<UserAccount> accs = new List<UserAccount>(); | 165 | List<UserAccount> accs = new List<UserAccount>(); |
167 | List<string> missing = new List<string>(); | 166 | List<string> missing = new List<string>(); |
168 | 167 | ||
@@ -184,15 +183,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts | |||
184 | 183 | ||
185 | if(missing.Count > 0) | 184 | if(missing.Count > 0) |
186 | { | 185 | { |
187 | List<UserAccount> ext = base.GetUserAccounts(scopeID, missing, out suported); | 186 | List<UserAccount> ext = base.GetUserAccounts(scopeID, missing); |
188 | if(suported && ext != null) | 187 | if(ext != null) |
189 | accs.AddRange(ext); | 188 | accs.AddRange(ext); |
190 | } | 189 | } |
191 | 190 | ||
192 | return accs; | 191 | return accs; |
193 | } | 192 | } |
194 | 193 | ||
195 | |||
196 | public override bool StoreUserAccount(UserAccount data) | 194 | public override bool StoreUserAccount(UserAccount data) |
197 | { | 195 | { |
198 | // This remote connector refuses to serve this method | 196 | // This remote connector refuses to serve this method |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianUserAccountServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianUserAccountServiceConnector.cs index 1ef5ad2..6f613c1 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianUserAccountServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianUserAccountServiceConnector.cs | |||
@@ -201,9 +201,8 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
201 | return null; | 201 | return null; |
202 | } | 202 | } |
203 | 203 | ||
204 | public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported) | 204 | public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs) |
205 | { | 205 | { |
206 | suported = false; | ||
207 | return null; | 206 | return null; |
208 | } | 207 | } |
209 | 208 | ||
diff --git a/OpenSim/Services/Connectors/UserAccounts/UserAccountServicesConnector.cs b/OpenSim/Services/Connectors/UserAccounts/UserAccountServicesConnector.cs index e625143..5bc7a1c 100644 --- a/OpenSim/Services/Connectors/UserAccounts/UserAccountServicesConnector.cs +++ b/OpenSim/Services/Connectors/UserAccounts/UserAccountServicesConnector.cs | |||
@@ -191,7 +191,27 @@ namespace OpenSim.Services.Connectors | |||
191 | return accounts; | 191 | return accounts; |
192 | } | 192 | } |
193 | 193 | ||
194 | public virtual List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported) | 194 | public virtual List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs) |
195 | { | ||
196 | List<UserAccount> accs = new List<UserAccount>(); | ||
197 | bool multisuported = true; | ||
198 | accs = doGetMultiUserAccounts(scopeID, IDs, out multisuported); | ||
199 | if(multisuported) | ||
200 | return accs; | ||
201 | |||
202 | // service does not do multi accounts so need to do it one by one | ||
203 | |||
204 | UUID uuid = UUID.Zero; | ||
205 | foreach(string id in IDs) | ||
206 | { | ||
207 | if(UUID.TryParse(id, out uuid) && uuid != UUID.Zero) | ||
208 | accs.Add(GetUserAccount(scopeID,uuid)); | ||
209 | } | ||
210 | |||
211 | return accs; | ||
212 | } | ||
213 | |||
214 | private List<UserAccount> doGetMultiUserAccounts(UUID scopeID, List<string> IDs, out bool suported) | ||
195 | { | 215 | { |
196 | suported = true; | 216 | suported = true; |
197 | Dictionary<string, object> sendData = new Dictionary<string, object>(); | 217 | Dictionary<string, object> sendData = new Dictionary<string, object>(); |
diff --git a/OpenSim/Services/HypergridService/UserAccountCache.cs b/OpenSim/Services/HypergridService/UserAccountCache.cs index 618bd97..25ffb63 100644 --- a/OpenSim/Services/HypergridService/UserAccountCache.cs +++ b/OpenSim/Services/HypergridService/UserAccountCache.cs | |||
@@ -100,9 +100,8 @@ namespace OpenSim.Services.HypergridService | |||
100 | return null; | 100 | return null; |
101 | } | 101 | } |
102 | 102 | ||
103 | public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported) | 103 | public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs) |
104 | { | 104 | { |
105 | suported = false; | ||
106 | return null; | 105 | return null; |
107 | } | 106 | } |
108 | 107 | ||
diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs index 1914040..c6f3ef3 100644 --- a/OpenSim/Services/Interfaces/IUserAccountService.cs +++ b/OpenSim/Services/Interfaces/IUserAccountService.cs | |||
@@ -187,7 +187,7 @@ namespace OpenSim.Services.Interfaces | |||
187 | /// <returns></returns> | 187 | /// <returns></returns> |
188 | List<UserAccount> GetUserAccounts(UUID scopeID, string query); | 188 | List<UserAccount> GetUserAccounts(UUID scopeID, string query); |
189 | List<UserAccount> GetUserAccountsWhere(UUID scopeID, string where); | 189 | List<UserAccount> GetUserAccountsWhere(UUID scopeID, string where); |
190 | List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported); | 190 | List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs); |
191 | 191 | ||
192 | /// <summary> | 192 | /// <summary> |
193 | /// Store the data given, wich replaces the stored data, therefore must be complete. | 193 | /// Store the data given, wich replaces the stored data, therefore must be complete. |
diff --git a/OpenSim/Services/UserAccountService/UserAccountService.cs b/OpenSim/Services/UserAccountService/UserAccountService.cs index fbe5e3b..668fe53 100644 --- a/OpenSim/Services/UserAccountService/UserAccountService.cs +++ b/OpenSim/Services/UserAccountService/UserAccountService.cs | |||
@@ -265,9 +265,9 @@ namespace OpenSim.Services.UserAccountService | |||
265 | return MakeUserAccount(d[0]); | 265 | return MakeUserAccount(d[0]); |
266 | } | 266 | } |
267 | 267 | ||
268 | public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported) | 268 | public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs) |
269 | { | 269 | { |
270 | suported = true; | 270 | // do it one at a time db access should be fast, so no need to break its api |
271 | List<UserAccount> accs = new List<UserAccount>(); | 271 | List<UserAccount> accs = new List<UserAccount>(); |
272 | UUID uuid = UUID.Zero; | 272 | UUID uuid = UUID.Zero; |
273 | foreach(string id in IDs) | 273 | foreach(string id in IDs) |