From 5908b8ed7c273d239642a9d31e1844f9a2392e3d Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 19 Jan 2010 11:33:42 +0000 Subject: Change a member of the friendslist module to better reflect the client side data storage paradigm of the friends list and avoid repeated, unneccessary fetches of the entire friends list. --- OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs | 4 ++-- .../Region/CoreModules/World/Permissions/PermissionsModule.cs | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index 64854b2..a07b6e2 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs @@ -84,9 +84,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends { } - public List GetUserFriends(UUID agentID) + public uint GetFriendPerms(UUID principalID, UUID friendID) { - return null; + return 1; } } } diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 8fa0c65..72dd373 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs @@ -504,13 +504,10 @@ namespace OpenSim.Region.CoreModules.World.Permissions if (m_friendsModule == null) return false; - List profile = m_friendsModule.GetUserFriends(user); + uint friendPerms = m_friendsModule.GetFriendPerms(user, objectOwner); + if ((friendPerms & (uint)FriendRights.CanModifyObjects) != 0) + return true; - foreach (FriendListItem item in profile) - { - if (item.Friend == objectOwner && (item.FriendPerms & (uint)FriendRights.CanModifyObjects) != 0) - return true; - } return false; } -- cgit v1.1