diff options
Revamp the viewer -> banlist packet processing so fix a number of bugs.
Remove the too coarse CanEditParcel method in favor of a CanEditParcelProperties
method that takes a GroupPowers argument to specify what action is to be
taken. Also, make the method to set parcel data much more granular. Permissions
in a deeded setting should now work.
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 56 |
1 files changed, 3 insertions, 53 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index f5f3839..364dd6c 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -37,56 +37,6 @@ using OpenSim.Region.Framework.Interfaces; | |||
37 | using OpenSim.Region.Framework.Scenes; | 37 | using OpenSim.Region.Framework.Scenes; |
38 | using OpenSim.Services.Interfaces; | 38 | using OpenSim.Services.Interfaces; |
39 | 39 | ||
40 | // Temporary fix of wrong GroupPowers constants in OpenMetaverse library | ||
41 | enum GroupPowers : long | ||
42 | { | ||
43 | None = 0, | ||
44 | LandEjectAndFreeze = 1, | ||
45 | Invite = 2, | ||
46 | ReturnGroupSet = 2, | ||
47 | Eject = 4, | ||
48 | ReturnNonGroup = 4, | ||
49 | ChangeOptions = 8, | ||
50 | LandGardening = 8, | ||
51 | CreateRole = 16, | ||
52 | DeedObject = 16, | ||
53 | ModerateChat = 32, | ||
54 | DeleteRole = 32, | ||
55 | RoleProperties = 64, | ||
56 | ObjectManipulate = 64, | ||
57 | ObjectSetForSale = 128, | ||
58 | AssignMemberLimited = 128, | ||
59 | AssignMember = 256, | ||
60 | Accountable = 256, | ||
61 | RemoveMember = 512, | ||
62 | SendNotices = 1024, | ||
63 | ChangeActions = 1024, | ||
64 | ChangeIdentity = 2048, | ||
65 | ReceiveNotices = 2048, | ||
66 | StartProposal = 4096, | ||
67 | LandDeed = 4096, | ||
68 | VoteOnProposal = 8192, | ||
69 | LandRelease = 8192, | ||
70 | LandSetSale = 16384, | ||
71 | LandDivideJoin = 32768, | ||
72 | ReturnGroupOwned = 65536, | ||
73 | JoinChat = 65536, | ||
74 | FindPlaces = 131072, | ||
75 | LandChangeIdentity = 262144, | ||
76 | SetLandingPoint = 524288, | ||
77 | ChangeMedia = 1048576, | ||
78 | LandEdit = 2097152, | ||
79 | LandOptions = 4194304, | ||
80 | AllowEditLand = 8388608, | ||
81 | AllowFly = 16777216, | ||
82 | AllowRez = 33554432, | ||
83 | AllowLandmark = 67108864, | ||
84 | AllowVoiceChat = 134217728, | ||
85 | AllowSetHome = 268435456, | ||
86 | LandManageAllowed = 536870912, | ||
87 | LandManageBanned = 1073741824 | ||
88 | } | ||
89 | |||
90 | namespace OpenSim.Region.CoreModules.World.Permissions | 40 | namespace OpenSim.Region.CoreModules.World.Permissions |
91 | { | 41 | { |
92 | public class PermissionsModule : IRegionModule | 42 | public class PermissionsModule : IRegionModule |
@@ -214,7 +164,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
214 | m_scene.Permissions.OnDuplicateObject += CanDuplicateObject; | 164 | m_scene.Permissions.OnDuplicateObject += CanDuplicateObject; |
215 | m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED | 165 | m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED |
216 | m_scene.Permissions.OnEditObject += CanEditObject; //MAYBE FULLY IMPLEMENTED | 166 | m_scene.Permissions.OnEditObject += CanEditObject; //MAYBE FULLY IMPLEMENTED |
217 | m_scene.Permissions.OnEditParcel += CanEditParcel; //MAYBE FULLY IMPLEMENTED | 167 | m_scene.Permissions.OnEditParcelProperties += CanEditParcelProperties; //MAYBE FULLY IMPLEMENTED |
218 | m_scene.Permissions.OnInstantMessage += CanInstantMessage; | 168 | m_scene.Permissions.OnInstantMessage += CanInstantMessage; |
219 | m_scene.Permissions.OnInventoryTransfer += CanInventoryTransfer; //NOT YET IMPLEMENTED | 169 | m_scene.Permissions.OnInventoryTransfer += CanInventoryTransfer; //NOT YET IMPLEMENTED |
220 | m_scene.Permissions.OnIssueEstateCommand += CanIssueEstateCommand; //FULLY IMPLEMENTED | 170 | m_scene.Permissions.OnIssueEstateCommand += CanIssueEstateCommand; //FULLY IMPLEMENTED |
@@ -1005,12 +955,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1005 | return GenericObjectPermission(editorID, objectID, false); | 955 | return GenericObjectPermission(editorID, objectID, false); |
1006 | } | 956 | } |
1007 | 957 | ||
1008 | private bool CanEditParcel(UUID user, ILandObject parcel, Scene scene) | 958 | private bool CanEditParcelProperties(UUID user, ILandObject parcel, GroupPowers p, Scene scene) |
1009 | { | 959 | { |
1010 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 960 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
1011 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 961 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
1012 | 962 | ||
1013 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandDivideJoin); | 963 | return GenericParcelOwnerPermission(user, parcel, (ulong)p); |
1014 | } | 964 | } |
1015 | 965 | ||
1016 | /// <summary> | 966 | /// <summary> |