diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index effe1f0..c790624 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -144,6 +144,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
144 | private Dictionary<string, bool> GrantVB = new Dictionary<string, bool>(); | 144 | private Dictionary<string, bool> GrantVB = new Dictionary<string, bool>(); |
145 | private Dictionary<string, bool> GrantJS = new Dictionary<string, bool>(); | 145 | private Dictionary<string, bool> GrantJS = new Dictionary<string, bool>(); |
146 | private Dictionary<string, bool> GrantYP = new Dictionary<string, bool>(); | 146 | private Dictionary<string, bool> GrantYP = new Dictionary<string, bool>(); |
147 | private IFriendsModule m_friendsModule = null; | ||
148 | |||
147 | #endregion | 149 | #endregion |
148 | 150 | ||
149 | #region IRegionModule Members | 151 | #region IRegionModule Members |
@@ -363,6 +365,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
363 | 365 | ||
364 | public void PostInitialise() | 366 | public void PostInitialise() |
365 | { | 367 | { |
368 | m_friendsModule = m_scene.RequestModuleInterface<IFriendsModule>(); | ||
369 | |||
370 | if (m_friendsModule == null) | ||
371 | m_log.Error("[PERMISSIONS]: Friends module not found, friend permissions will not work"); | ||
372 | else | ||
373 | m_log.Info("[PERMISSIONS]: Friends module found, friend permissions enabled"); | ||
366 | } | 374 | } |
367 | 375 | ||
368 | public void Close() | 376 | public void Close() |
@@ -479,31 +487,18 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
479 | protected bool IsFriendWithPerms(UUID user,UUID objectOwner) | 487 | protected bool IsFriendWithPerms(UUID user,UUID objectOwner) |
480 | { | 488 | { |
481 | 489 | ||
482 | if (user == UUID.Zero) return false; | 490 | if (user == UUID.Zero) |
491 | return false; | ||
492 | |||
493 | if (m_friendsModule == null) | ||
494 | return false; | ||
495 | |||
496 | List<FriendListItem> profile = m_friendsModule.GetUserFriends(user); | ||
483 | 497 | ||
484 | List<FriendListItem> profile = m_scene.CommsManager.GetUserFriendList(user); | ||
485 | foreach (FriendListItem item in profile) | 498 | foreach (FriendListItem item in profile) |
486 | { | 499 | { |
487 | m_log.Warn("IsFriendWithPerms called" + item.FriendPerms.ToString()); | 500 | if(item.Friend == objectOwner && (item.FriendPerms & (uint)FriendRights.CanModifyObjects) != 0) |
488 | if(item.Friend == objectOwner) | 501 | return true; |
489 | { | ||
490 | // if (item.FriendPerms == 3) | ||
491 | // { | ||
492 | // return true; | ||
493 | // } | ||
494 | // if (item.FriendPerms == 4) | ||
495 | // { | ||
496 | // return true; | ||
497 | // } | ||
498 | // if (item.FriendPerms == 5) | ||
499 | // { | ||
500 | // return true; | ||
501 | // } | ||
502 | // if (item.FriendPerms == 7) | ||
503 | // { | ||
504 | // return true; | ||
505 | // } | ||
506 | } | ||
507 | } | 502 | } |
508 | return false; | 503 | return false; |
509 | } | 504 | } |