Merge branch 'master' into careminster
commit
7c729e1519
|
@ -723,12 +723,12 @@ namespace OpenSim.Groups
|
||||||
|
|
||||||
#region Actions without permission checks
|
#region Actions without permission checks
|
||||||
|
|
||||||
private void _AddAgentToGroup(string RequestingAgentID, string AgentID, UUID GroupID, UUID RoleID)
|
protected void _AddAgentToGroup(string RequestingAgentID, string AgentID, UUID GroupID, UUID RoleID)
|
||||||
{
|
{
|
||||||
_AddAgentToGroup(RequestingAgentID, AgentID, GroupID, RoleID, string.Empty);
|
_AddAgentToGroup(RequestingAgentID, AgentID, GroupID, RoleID, string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void _RemoveAgentFromGroup(string RequestingAgentID, string AgentID, UUID GroupID)
|
protected void _RemoveAgentFromGroup(string RequestingAgentID, string AgentID, UUID GroupID)
|
||||||
{
|
{
|
||||||
// 1. Delete membership
|
// 1. Delete membership
|
||||||
m_Database.DeleteMember(GroupID, AgentID);
|
m_Database.DeleteMember(GroupID, AgentID);
|
||||||
|
@ -780,7 +780,7 @@ namespace OpenSim.Groups
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _AddOrUpdateGroupRole(string RequestingAgentID, UUID groupID, UUID roleID, string name, string description, string title, ulong powers, bool add)
|
protected bool _AddOrUpdateGroupRole(string RequestingAgentID, UUID groupID, UUID roleID, string name, string description, string title, ulong powers, bool add)
|
||||||
{
|
{
|
||||||
RoleData data = m_Database.RetrieveRole(groupID, roleID);
|
RoleData data = m_Database.RetrieveRole(groupID, roleID);
|
||||||
|
|
||||||
|
@ -810,12 +810,12 @@ namespace OpenSim.Groups
|
||||||
return m_Database.StoreRole(data);
|
return m_Database.StoreRole(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _RemoveGroupRole(UUID groupID, UUID roleID)
|
protected void _RemoveGroupRole(UUID groupID, UUID roleID)
|
||||||
{
|
{
|
||||||
m_Database.DeleteRole(groupID, roleID);
|
m_Database.DeleteRole(groupID, roleID);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _AddAgentToGroupRole(string RequestingAgentID, string AgentID, UUID GroupID, UUID RoleID)
|
protected void _AddAgentToGroupRole(string RequestingAgentID, string AgentID, UUID GroupID, UUID RoleID)
|
||||||
{
|
{
|
||||||
RoleMembershipData data = m_Database.RetrieveRoleMember(GroupID, RoleID, AgentID);
|
RoleMembershipData data = m_Database.RetrieveRoleMember(GroupID, RoleID, AgentID);
|
||||||
if (data != null)
|
if (data != null)
|
||||||
|
@ -840,7 +840,7 @@ namespace OpenSim.Groups
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<GroupRolesData> _GetGroupRoles(UUID groupID)
|
protected List<GroupRolesData> _GetGroupRoles(UUID groupID)
|
||||||
{
|
{
|
||||||
List<GroupRolesData> roles = new List<GroupRolesData>();
|
List<GroupRolesData> roles = new List<GroupRolesData>();
|
||||||
|
|
||||||
|
@ -865,7 +865,7 @@ namespace OpenSim.Groups
|
||||||
return roles;
|
return roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ExtendedGroupRoleMembersData> _GetGroupRoleMembers(UUID GroupID, bool isInGroup)
|
protected List<ExtendedGroupRoleMembersData> _GetGroupRoleMembers(UUID GroupID, bool isInGroup)
|
||||||
{
|
{
|
||||||
List<ExtendedGroupRoleMembersData> rmembers = new List<ExtendedGroupRoleMembersData>();
|
List<ExtendedGroupRoleMembersData> rmembers = new List<ExtendedGroupRoleMembersData>();
|
||||||
|
|
||||||
|
|
|
@ -47,13 +47,10 @@ namespace OpenSim.Data.MySQL
|
||||||
|
|
||||||
public void DeleteOld()
|
public void DeleteOld()
|
||||||
{
|
{
|
||||||
uint now = (uint)Util.UnixTimeSinceEpoch();
|
|
||||||
|
|
||||||
using (MySqlCommand cmd = new MySqlCommand())
|
using (MySqlCommand cmd = new MySqlCommand())
|
||||||
{
|
{
|
||||||
cmd.CommandText = String.Format("delete from {0} where TMStamp < ?tstamp", m_Realm);
|
cmd.CommandText = String.Format("delete from {0} where TMStamp < NOW() - INTERVAL 2 WEEK", m_Realm);
|
||||||
cmd.Parameters.AddWithValue("?tstamp", now - 14 * 24 * 60 * 60); // > 2 weeks old
|
|
||||||
|
|
||||||
ExecuteNonQuery(cmd);
|
ExecuteNonQuery(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -690,7 +690,7 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule
|
||||||
/// <param name="agentId"></param>
|
/// <param name="agentId"></param>
|
||||||
public void EconomyDataRequestHandler(IClientAPI user)
|
public void EconomyDataRequestHandler(IClientAPI user)
|
||||||
{
|
{
|
||||||
Scene s = LocateSceneClientIn(user.AgentId);
|
Scene s = (Scene)user.Scene;
|
||||||
|
|
||||||
user.SendEconomyData(EnergyEfficiency, s.RegionInfo.ObjectCapacity, ObjectCount, PriceEnergyUnit, PriceGroupCreate,
|
user.SendEconomyData(EnergyEfficiency, s.RegionInfo.ObjectCapacity, ObjectCount, PriceEnergyUnit, PriceGroupCreate,
|
||||||
PriceObjectClaim, PriceObjectRent, PriceObjectScaleFactor, PriceParcelClaim, PriceParcelClaimFactor,
|
PriceObjectClaim, PriceObjectRent, PriceObjectScaleFactor, PriceParcelClaim, PriceParcelClaimFactor,
|
||||||
|
|
|
@ -286,6 +286,7 @@ namespace OpenSim.Server.Base
|
||||||
e.InnerException == null ? e.Message : e.InnerException.Message,
|
e.InnerException == null ? e.Message : e.InnerException.Message,
|
||||||
e.StackTrace);
|
e.StackTrace);
|
||||||
}
|
}
|
||||||
|
m_log.ErrorFormat("[SERVER UTILS]: Error loading plugin {0}: {1}", dllName, e.Message);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@ namespace OpenSim.Services.HypergridService
|
||||||
private static IUserAgentService m_UserAgentService;
|
private static IUserAgentService m_UserAgentService;
|
||||||
private static ISimulationService m_SimulationService;
|
private static ISimulationService m_SimulationService;
|
||||||
private static IGridUserService m_GridUserService;
|
private static IGridUserService m_GridUserService;
|
||||||
|
private static IBansService m_BansService;
|
||||||
|
|
||||||
private static string m_AllowedClients = string.Empty;
|
private static string m_AllowedClients = string.Empty;
|
||||||
private static string m_DeniedClients = string.Empty;
|
private static string m_DeniedClients = string.Empty;
|
||||||
|
@ -87,6 +88,7 @@ namespace OpenSim.Services.HypergridService
|
||||||
string presenceService = serverConfig.GetString("PresenceService", String.Empty);
|
string presenceService = serverConfig.GetString("PresenceService", String.Empty);
|
||||||
string simulationService = serverConfig.GetString("SimulationService", String.Empty);
|
string simulationService = serverConfig.GetString("SimulationService", String.Empty);
|
||||||
string gridUserService = serverConfig.GetString("GridUserService", String.Empty);
|
string gridUserService = serverConfig.GetString("GridUserService", String.Empty);
|
||||||
|
string bansService = serverConfig.GetString("BansService", String.Empty);
|
||||||
|
|
||||||
// These are mandatory, the others aren't
|
// These are mandatory, the others aren't
|
||||||
if (gridService == string.Empty || presenceService == string.Empty)
|
if (gridService == string.Empty || presenceService == string.Empty)
|
||||||
|
@ -121,6 +123,8 @@ namespace OpenSim.Services.HypergridService
|
||||||
m_UserAgentService = ServerUtils.LoadPlugin<IUserAgentService>(homeUsersService, args);
|
m_UserAgentService = ServerUtils.LoadPlugin<IUserAgentService>(homeUsersService, args);
|
||||||
if (gridUserService != string.Empty)
|
if (gridUserService != string.Empty)
|
||||||
m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args);
|
m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args);
|
||||||
|
if (bansService != string.Empty)
|
||||||
|
m_BansService = ServerUtils.LoadPlugin<IBansService>(bansService, args);
|
||||||
|
|
||||||
if (simService != null)
|
if (simService != null)
|
||||||
m_SimulationService = simService;
|
m_SimulationService = simService;
|
||||||
|
@ -223,7 +227,7 @@ namespace OpenSim.Services.HypergridService
|
||||||
m_log.InfoFormat("[GATEKEEPER SERVICE]: Login request for {0} {1} @ {2} ({3}) at {4} using viewer {5}, channel {6}, IP {7}, Mac {8}, Id0 {9} Teleport Flags {10}",
|
m_log.InfoFormat("[GATEKEEPER SERVICE]: Login request for {0} {1} @ {2} ({3}) at {4} using viewer {5}, channel {6}, IP {7}, Mac {8}, Id0 {9} Teleport Flags {10}",
|
||||||
aCircuit.firstname, aCircuit.lastname, authURL, aCircuit.AgentID, destination.RegionName,
|
aCircuit.firstname, aCircuit.lastname, authURL, aCircuit.AgentID, destination.RegionName,
|
||||||
aCircuit.Viewer, aCircuit.Channel, aCircuit.IPAddress, aCircuit.Mac, aCircuit.Id0, aCircuit.teleportFlags.ToString());
|
aCircuit.Viewer, aCircuit.Channel, aCircuit.IPAddress, aCircuit.Mac, aCircuit.Id0, aCircuit.teleportFlags.ToString());
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check client
|
// Check client
|
||||||
//
|
//
|
||||||
|
@ -287,17 +291,16 @@ namespace OpenSim.Services.HypergridService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_log.DebugFormat("[GATEKEEPER SERVICE]: User is ok");
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Foreign agents allowed? Exceptions?
|
// Foreign agents allowed? Exceptions?
|
||||||
//
|
//
|
||||||
if (account == null)
|
if (account == null)
|
||||||
{
|
{
|
||||||
bool allowed = m_ForeignAgentsAllowed;
|
bool allowed = m_ForeignAgentsAllowed;
|
||||||
|
|
||||||
if (m_ForeignAgentsAllowed && IsException(aCircuit, m_ForeignsAllowedExceptions))
|
if (m_ForeignAgentsAllowed && IsException(aCircuit, m_ForeignsAllowedExceptions))
|
||||||
allowed = false;
|
allowed = false;
|
||||||
|
|
||||||
if (!m_ForeignAgentsAllowed && IsException(aCircuit, m_ForeignsDisallowedExceptions))
|
if (!m_ForeignAgentsAllowed && IsException(aCircuit, m_ForeignsDisallowedExceptions))
|
||||||
allowed = true;
|
allowed = true;
|
||||||
|
@ -311,6 +314,20 @@ namespace OpenSim.Services.HypergridService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Is the user banned?
|
||||||
|
// This uses a Ban service that's more powerful than the configs
|
||||||
|
//
|
||||||
|
string uui = (account != null ? aCircuit.AgentID.ToString() : Util.ProduceUserUniversalIdentifier(aCircuit));
|
||||||
|
if (m_BansService != null && m_BansService.IsBanned(uui, aCircuit.IPAddress, aCircuit.Id0, authURL))
|
||||||
|
{
|
||||||
|
reason = "You are banned from this world";
|
||||||
|
m_log.InfoFormat("[GATEKEEPER SERVICE]: Login failed, reason: user {0} is banned", uui);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_log.DebugFormat("[GATEKEEPER SERVICE]: User is OK");
|
||||||
|
|
||||||
bool isFirstLogin = false;
|
bool isFirstLogin = false;
|
||||||
//
|
//
|
||||||
// Login the presence, if it's not there yet (by the login service)
|
// Login the presence, if it's not there yet (by the login service)
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) Contributors, http://opensimulator.org/
|
||||||
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the OpenSimulator Project nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
using OpenSim.Framework;
|
||||||
|
using OpenMetaverse;
|
||||||
|
|
||||||
|
namespace OpenSim.Services.Interfaces
|
||||||
|
{
|
||||||
|
public interface IBansService
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Are any of the given arguments banned from the grid?
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="userID"></param>
|
||||||
|
/// <param name="ip"></param>
|
||||||
|
/// <param name="id0"></param>
|
||||||
|
/// <param name="origin"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
bool IsBanned(string userID, string ip, string id0, string origin);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -73,7 +73,7 @@ namespace OpenSim.Services.UserAccountService
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GridUserInfo[] GetGridUserInfo(string[] userIDs)
|
public virtual GridUserInfo[] GetGridUserInfo(string[] userIDs)
|
||||||
{
|
{
|
||||||
List<GridUserInfo> ret = new List<GridUserInfo>();
|
List<GridUserInfo> ret = new List<GridUserInfo>();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue