aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services')
-rw-r--r--OpenSim/Services/HypergridService/GatekeeperService.cs31
-rw-r--r--OpenSim/Services/Interfaces/IGridUserService.cs8
-rw-r--r--OpenSim/Services/UserAccountService/GridUserService.cs2
3 files changed, 37 insertions, 4 deletions
diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs
index 0f7d7c6..004311f 100644
--- a/OpenSim/Services/HypergridService/GatekeeperService.cs
+++ b/OpenSim/Services/HypergridService/GatekeeperService.cs
@@ -57,6 +57,7 @@ namespace OpenSim.Services.HypergridService
57 private static IUserAccountService m_UserAccountService; 57 private static IUserAccountService m_UserAccountService;
58 private static IUserAgentService m_UserAgentService; 58 private static IUserAgentService m_UserAgentService;
59 private static ISimulationService m_SimulationService; 59 private static ISimulationService m_SimulationService;
60 private static IGridUserService m_GridUserService;
60 61
61 private static string m_AllowedClients = string.Empty; 62 private static string m_AllowedClients = string.Empty;
62 private static string m_DeniedClients = string.Empty; 63 private static string m_DeniedClients = string.Empty;
@@ -84,8 +85,9 @@ namespace OpenSim.Services.HypergridService
84 string gridService = serverConfig.GetString("GridService", String.Empty); 85 string gridService = serverConfig.GetString("GridService", String.Empty);
85 string presenceService = serverConfig.GetString("PresenceService", String.Empty); 86 string presenceService = serverConfig.GetString("PresenceService", String.Empty);
86 string simulationService = serverConfig.GetString("SimulationService", String.Empty); 87 string simulationService = serverConfig.GetString("SimulationService", String.Empty);
88 string gridUserService = serverConfig.GetString("GridUserService", String.Empty);
87 89
88 // These 3 are mandatory, the others aren't 90 // These are mandatory, the others aren't
89 if (gridService == string.Empty || presenceService == string.Empty) 91 if (gridService == string.Empty || presenceService == string.Empty)
90 throw new Exception("Incomplete specifications, Gatekeeper Service cannot function."); 92 throw new Exception("Incomplete specifications, Gatekeeper Service cannot function.");
91 93
@@ -105,6 +107,8 @@ namespace OpenSim.Services.HypergridService
105 m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args); 107 m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args);
106 if (homeUsersService != string.Empty) 108 if (homeUsersService != string.Empty)
107 m_UserAgentService = ServerUtils.LoadPlugin<IUserAgentService>(homeUsersService, args); 109 m_UserAgentService = ServerUtils.LoadPlugin<IUserAgentService>(homeUsersService, args);
110 if (gridUserService != string.Empty)
111 m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args);
108 112
109 if (simService != null) 113 if (simService != null)
110 m_SimulationService = simService; 114 m_SimulationService = simService;
@@ -295,8 +299,6 @@ namespace OpenSim.Services.HypergridService
295 } 299 }
296 } 300 }
297 301
298 // May want to authorize
299
300 bool isFirstLogin = false; 302 bool isFirstLogin = false;
301 // 303 //
302 // Login the presence, if it's not there yet (by the login service) 304 // Login the presence, if it's not there yet (by the login service)
@@ -305,7 +307,8 @@ namespace OpenSim.Services.HypergridService
305 if (presence != null) // it has been placed there by the login service 307 if (presence != null) // it has been placed there by the login service
306 isFirstLogin = true; 308 isFirstLogin = true;
307 309
308 else 310 else
311 {
309 if (!m_PresenceService.LoginAgent(aCircuit.AgentID.ToString(), aCircuit.SessionID, aCircuit.SecureSessionID)) 312 if (!m_PresenceService.LoginAgent(aCircuit.AgentID.ToString(), aCircuit.SessionID, aCircuit.SecureSessionID))
310 { 313 {
311 reason = "Unable to login presence"; 314 reason = "Unable to login presence";
@@ -315,6 +318,26 @@ namespace OpenSim.Services.HypergridService
315 } 318 }
316 m_log.DebugFormat("[GATEKEEPER SERVICE]: Login presence ok"); 319 m_log.DebugFormat("[GATEKEEPER SERVICE]: Login presence ok");
317 320
321 // Also login foreigners with GridUser service
322 if (m_GridUserService != null && account == null)
323 {
324 string userId = aCircuit.AgentID.ToString();
325 string first = aCircuit.firstname, last = aCircuit.lastname;
326 if (last.StartsWith("@"))
327 {
328 string[] parts = aCircuit.firstname.Split('.');
329 if (parts.Length >= 2)
330 {
331 first = parts[0];
332 last = parts[1];
333 }
334 }
335
336 userId += ";" + aCircuit.ServiceURLs["HomeURI"] + ";" + first + " " + last;
337 m_GridUserService.LoggedIn(userId);
338 }
339 }
340
318 // 341 //
319 // Get the region 342 // Get the region
320 // 343 //
diff --git a/OpenSim/Services/Interfaces/IGridUserService.cs b/OpenSim/Services/Interfaces/IGridUserService.cs
index 0a52bfa..620ed3a 100644
--- a/OpenSim/Services/Interfaces/IGridUserService.cs
+++ b/OpenSim/Services/Interfaces/IGridUserService.cs
@@ -50,6 +50,8 @@ namespace OpenSim.Services.Interfaces
50 public DateTime Login; 50 public DateTime Login;
51 public DateTime Logout; 51 public DateTime Logout;
52 52
53 public string TOS = string.Empty;
54
53 public GridUserInfo() {} 55 public GridUserInfo() {}
54 56
55 public GridUserInfo(Dictionary<string, object> kvp) 57 public GridUserInfo(Dictionary<string, object> kvp)
@@ -78,6 +80,11 @@ namespace OpenSim.Services.Interfaces
78 if (kvp.ContainsKey("Online")) 80 if (kvp.ContainsKey("Online"))
79 Boolean.TryParse(kvp["Online"].ToString(), out Online); 81 Boolean.TryParse(kvp["Online"].ToString(), out Online);
80 82
83 if (kvp.ContainsKey("TOS"))
84 TOS = kvp["TOS"].ToString();
85 else
86 TOS = string.Empty;
87
81 } 88 }
82 89
83 public Dictionary<string, object> ToKeyValuePairs() 90 public Dictionary<string, object> ToKeyValuePairs()
@@ -97,6 +104,7 @@ namespace OpenSim.Services.Interfaces
97 result["Login"] = Login.ToString(); 104 result["Login"] = Login.ToString();
98 result["Logout"] = Logout.ToString(); 105 result["Logout"] = Logout.ToString();
99 106
107 result["TOS"] = TOS;
100 108
101 return result; 109 return result;
102 } 110 }
diff --git a/OpenSim/Services/UserAccountService/GridUserService.cs b/OpenSim/Services/UserAccountService/GridUserService.cs
index ac3d8fd..8eae859 100644
--- a/OpenSim/Services/UserAccountService/GridUserService.cs
+++ b/OpenSim/Services/UserAccountService/GridUserService.cs
@@ -70,6 +70,8 @@ namespace OpenSim.Services.UserAccountService
70 info.Login = Util.ToDateTime(Convert.ToInt32(d.Data["Login"])); 70 info.Login = Util.ToDateTime(Convert.ToInt32(d.Data["Login"]));
71 info.Logout = Util.ToDateTime(Convert.ToInt32(d.Data["Logout"])); 71 info.Logout = Util.ToDateTime(Convert.ToInt32(d.Data["Logout"]));
72 72
73 info.TOS = d.Data["TOS"];
74
73 return info; 75 return info;
74 } 76 }
75 77