29 using System.Collections.Generic;
31 using System.Reflection;
34 using OpenSim.Framework;
35 using OpenSim.Services.Interfaces;
36 using OpenSim.Region.Framework.Interfaces;
37 using OpenSim.Region.Framework.Scenes;
46 private enum AccessFlags
49 DisallowResidents = 1,
50 DisallowForeigners = 2,
53 private static readonly ILog m_log =
55 MethodBase.GetCurrentMethod().DeclaringType);
60 private Scene m_Scene;
61 AccessFlags m_accessValue = AccessFlags.None;
72 string accessStr = config.GetString(
"Region_" + scene.RegionInfo.RegionName.Replace(
' ',
'_'),
String.Empty);
73 if (accessStr !=
string.Empty)
77 m_accessValue = (AccessFlags)Enum.Parse(typeof(AccessFlags), accessStr);
79 catch (ArgumentException)
81 m_log.WarnFormat(
"[AuthorizationService]: {0} is not a valid access flag", accessStr);
84 m_log.DebugFormat(
"[AuthorizationService]: Region {0} access restrictions: {1}", m_Scene.RegionInfo.RegionName, m_accessValue);
90 string user,
string firstName,
string lastName,
string regionID, out
string message)
93 if (m_Scene.RegionInfo.RegionID.ToString() != regionID)
95 m_log.WarnFormat(
"[AuthorizationService]: Service for region {0} received request to authorize for region {1}",
96 m_Scene.RegionInfo.RegionID, regionID);
97 message = string.Format(
"Region {0} received request to authorize for region {1}", m_Scene.RegionInfo.RegionID, regionID);
101 if (m_accessValue == AccessFlags.None)
103 message =
"Authorized";
109 if ((m_accessValue & AccessFlags.DisallowForeigners) != 0)
111 if (!m_UserManagement.IsLocalGridUser(userID))
113 message =
"No foreign users allowed in this region";
118 if ((m_accessValue & AccessFlags.DisallowResidents) != 0)
120 if (!(m_Scene.Permissions.IsGod(userID) || m_Scene.Permissions.IsAdministrator(userID)))
122 message =
"Only Admins and Managers allowed in this region";
127 message =
"Authorized";
bool IsAuthorizedForRegion(string user, string firstName, string lastName, string regionID, out string message)
Check whether the user should be given access to the region.
Interactive OpenSim region server
OpenSim.Services.Interfaces.GridRegion GridRegion
AuthorizationService(IConfig config, Scene scene)
This maintains the relationship between a UUID and a user name.