aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services')
-rw-r--r--OpenSim/Services/HypergridService/GatekeeperService.cs13
-rw-r--r--OpenSim/Services/HypergridService/HGInventoryService.cs2
-rw-r--r--OpenSim/Services/HypergridService/UserAgentService.cs14
-rw-r--r--OpenSim/Services/InventoryService/XInventoryService.cs2
4 files changed, 26 insertions, 5 deletions
diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs
index 4e38687..149a0ab 100644
--- a/OpenSim/Services/HypergridService/GatekeeperService.cs
+++ b/OpenSim/Services/HypergridService/GatekeeperService.cs
@@ -60,6 +60,7 @@ namespace OpenSim.Services.HypergridService
60 60
61 protected string m_AllowedClients = string.Empty; 61 protected string m_AllowedClients = string.Empty;
62 protected string m_DeniedClients = string.Empty; 62 protected string m_DeniedClients = string.Empty;
63 private static bool m_ForeignAgentsAllowed = true;
63 64
64 private static UUID m_ScopeID; 65 private static UUID m_ScopeID;
65 private static bool m_AllowTeleportsToAnyRegion; 66 private static bool m_AllowTeleportsToAnyRegion;
@@ -110,6 +111,7 @@ namespace OpenSim.Services.HypergridService
110 111
111 m_AllowedClients = serverConfig.GetString("AllowedClients", string.Empty); 112 m_AllowedClients = serverConfig.GetString("AllowedClients", string.Empty);
112 m_DeniedClients = serverConfig.GetString("DeniedClients", string.Empty); 113 m_DeniedClients = serverConfig.GetString("DeniedClients", string.Empty);
114 m_ForeignAgentsAllowed = serverConfig.GetBoolean("ForeignAgentsAllowed", true);
113 115
114 if (m_GridService == null || m_PresenceService == null || m_SimulationService == null) 116 if (m_GridService == null || m_PresenceService == null || m_SimulationService == null)
115 throw new Exception("Unable to load a required plugin, Gatekeeper Service cannot function."); 117 throw new Exception("Unable to load a required plugin, Gatekeeper Service cannot function.");
@@ -257,6 +259,17 @@ namespace OpenSim.Services.HypergridService
257 } 259 }
258 m_log.DebugFormat("[GATEKEEPER SERVICE]: User is ok"); 260 m_log.DebugFormat("[GATEKEEPER SERVICE]: User is ok");
259 261
262 //
263 // Foreign agents allowed
264 //
265 if (account == null && !m_ForeignAgentsAllowed)
266 {
267 reason = "Unauthorized";
268 m_log.InfoFormat("[GATEKEEPER SERVICE]: Foreign agents are not permitted {0} {1}. Refusing service.",
269 aCircuit.firstname, aCircuit.lastname);
270 return false;
271 }
272
260 // May want to authorize 273 // May want to authorize
261 274
262 bool isFirstLogin = false; 275 bool isFirstLogin = false;
diff --git a/OpenSim/Services/HypergridService/HGInventoryService.cs b/OpenSim/Services/HypergridService/HGInventoryService.cs
index a1287fd..b29d803 100644
--- a/OpenSim/Services/HypergridService/HGInventoryService.cs
+++ b/OpenSim/Services/HypergridService/HGInventoryService.cs
@@ -53,8 +53,6 @@ namespace OpenSim.Services.HypergridService
53 LogManager.GetLogger( 53 LogManager.GetLogger(
54 MethodBase.GetCurrentMethod().DeclaringType); 54 MethodBase.GetCurrentMethod().DeclaringType);
55 55
56 protected new IXInventoryData m_Database;
57
58 private string m_HomeURL; 56 private string m_HomeURL;
59 private IUserAccountService m_UserAccountService; 57 private IUserAccountService m_UserAccountService;
60 58
diff --git a/OpenSim/Services/HypergridService/UserAgentService.cs b/OpenSim/Services/HypergridService/UserAgentService.cs
index 842ca58..a49993c 100644
--- a/OpenSim/Services/HypergridService/UserAgentService.cs
+++ b/OpenSim/Services/HypergridService/UserAgentService.cs
@@ -73,6 +73,8 @@ namespace OpenSim.Services.HypergridService
73 73
74 protected static string m_GridName; 74 protected static string m_GridName;
75 75
76 protected static int m_LevelOutsideContacts;
77
76 protected static bool m_BypassClientVerification; 78 protected static bool m_BypassClientVerification;
77 79
78 public UserAgentService(IConfigSource config) : this(config, null) 80 public UserAgentService(IConfigSource config) : this(config, null)
@@ -127,6 +129,8 @@ namespace OpenSim.Services.HypergridService
127 } 129 }
128 if (!m_GridName.EndsWith("/")) 130 if (!m_GridName.EndsWith("/"))
129 m_GridName = m_GridName + "/"; 131 m_GridName = m_GridName + "/";
132
133 m_LevelOutsideContacts = serverConfig.GetInt("LevelOutsideContacts", 0);
130 } 134 }
131 } 135 }
132 136
@@ -569,10 +573,16 @@ namespace OpenSim.Services.HypergridService
569 573
570 public UUID GetUUID(String first, String last) 574 public UUID GetUUID(String first, String last)
571 { 575 {
572 // Let's see if it's a local user 576 // Let's see if it's a local user
573 UserAccount account = m_UserAccountService.GetUserAccount(UUID.Zero, first, last); 577 UserAccount account = m_UserAccountService.GetUserAccount(UUID.Zero, first, last);
574 if (account != null) 578 if (account != null)
575 return account.PrincipalID; 579 {
580 // check user level
581 if (account.UserLevel < m_LevelOutsideContacts)
582 return UUID.Zero;
583 else
584 return account.PrincipalID;
585 }
576 else 586 else
577 return UUID.Zero; 587 return UUID.Zero;
578 } 588 }
diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs
index 8c57d17..7b2c3a6 100644
--- a/OpenSim/Services/InventoryService/XInventoryService.cs
+++ b/OpenSim/Services/InventoryService/XInventoryService.cs
@@ -318,7 +318,7 @@ namespace OpenSim.Services.InventoryService
318 318
319 if (check.Type != -1 || xFolder.type != -1) 319 if (check.Type != -1 || xFolder.type != -1)
320 { 320 {
321 if (xFolder.version > check.Version) 321 if (xFolder.version < check.Version)
322 return false; 322 return false;
323 check.Version = (ushort)xFolder.version; 323 check.Version = (ushort)xFolder.version;
324 xFolder = ConvertFromOpenSim(check); 324 xFolder = ConvertFromOpenSim(check);