diff options
Diffstat (limited to 'OpenSim/Region/CoreModules')
2 files changed, 41 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs index cf9a7b4..1002b85 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs | |||
@@ -182,6 +182,12 @@ 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) | ||
186 | { | ||
187 | return UserAccountService.GetUserAccounts(scopeID, IDs, out suported); | ||
188 | } | ||
189 | |||
190 | |||
185 | public List<UserAccount> GetUserAccountsWhere(UUID scopeID, string query) | 191 | public List<UserAccount> GetUserAccountsWhere(UUID scopeID, string query) |
186 | { | 192 | { |
187 | return null; | 193 | return null; |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs index afbba30..fb5fae1 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs | |||
@@ -26,6 +26,8 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | ||
29 | using Nini.Config; | 31 | using Nini.Config; |
30 | using log4net; | 32 | using log4net; |
31 | using Mono.Addins; | 33 | using Mono.Addins; |
@@ -158,6 +160,39 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts | |||
158 | return account; | 160 | return account; |
159 | } | 161 | } |
160 | 162 | ||
163 | public override List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported) | ||
164 | { | ||
165 | suported = true; | ||
166 | List<UserAccount> accs = new List<UserAccount>(); | ||
167 | List<string> missing = new List<string>(); | ||
168 | |||
169 | UUID uuid = UUID.Zero;; | ||
170 | UserAccount account; | ||
171 | bool inCache = false; | ||
172 | |||
173 | foreach(string id in IDs) | ||
174 | { | ||
175 | if(UUID.TryParse(id, out uuid)) | ||
176 | { | ||
177 | account = m_Cache.Get(uuid, out inCache); | ||
178 | if (inCache) | ||
179 | accs.Add(account); | ||
180 | else | ||
181 | missing.Add(id); | ||
182 | } | ||
183 | } | ||
184 | |||
185 | if(missing.Count > 0) | ||
186 | { | ||
187 | List<UserAccount> ext = base.GetUserAccounts(scopeID, missing, out suported); | ||
188 | if(suported && ext != null) | ||
189 | accs.AddRange(ext); | ||
190 | } | ||
191 | |||
192 | return accs; | ||
193 | } | ||
194 | |||
195 | |||
161 | public override bool StoreUserAccount(UserAccount data) | 196 | public override bool StoreUserAccount(UserAccount data) |
162 | { | 197 | { |
163 | // This remote connector refuses to serve this method | 198 | // This remote connector refuses to serve this method |