diff options
author | lbsa71 | 2008-01-18 14:01:41 +0000 |
---|---|---|
committer | lbsa71 | 2008-01-18 14:01:41 +0000 |
commit | dfda3dd4d7d14af6c86bc09765f0976bfc6b18c1 (patch) | |
tree | 442251437cc7cf0f1c05f02cb7c9740e25bfa956 /OpenSim/Region/Environment/PermissionManager.cs | |
parent | * Friction reduction update. (diff) | |
download | opensim-SC-dfda3dd4d7d14af6c86bc09765f0976bfc6b18c1.zip opensim-SC-dfda3dd4d7d14af6c86bc09765f0976bfc6b18c1.tar.gz opensim-SC-dfda3dd4d7d14af6c86bc09765f0976bfc6b18c1.tar.bz2 opensim-SC-dfda3dd4d7d14af6c86bc09765f0976bfc6b18c1.tar.xz |
* Fixed bug where 'taskOwnerId' would always be null in PermissionManager, hence always retuning false on GenericObjectPermission.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/PermissionManager.cs | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs index f72ae66..9640ed7 100644 --- a/OpenSim/Region/Environment/PermissionManager.cs +++ b/OpenSim/Region/Environment/PermissionManager.cs | |||
@@ -240,7 +240,7 @@ namespace OpenSim.Region.Environment | |||
240 | return objectEveryoneMask; | 240 | return objectEveryoneMask; |
241 | } | 241 | } |
242 | 242 | ||
243 | protected virtual bool GenericObjectPermission(LLUUID user, LLUUID objId) | 243 | protected virtual bool GenericObjectPermission(LLUUID currentUser, LLUUID objId) |
244 | { | 244 | { |
245 | // Default: deny | 245 | // Default: deny |
246 | bool permission = false; | 246 | bool permission = false; |
@@ -256,32 +256,40 @@ namespace OpenSim.Region.Environment | |||
256 | return false; | 256 | return false; |
257 | } | 257 | } |
258 | 258 | ||
259 | SceneObjectGroup task = (SceneObjectGroup) m_scene.Entities[objId]; | 259 | SceneObjectGroup group = (SceneObjectGroup) m_scene.Entities[objId]; |
260 | LLUUID taskOwner = null; | 260 | |
261 | // Added this because at this point in time it wouldn't be wise for | 261 | LLUUID objectOwner = group.OwnerID; |
262 | // the administrator object permissions to take effect. | ||
263 | LLUUID objectOwner = task.OwnerID; | ||
264 | 262 | ||
265 | // Object owners should be able to edit their own content | 263 | // Object owners should be able to edit their own content |
266 | if (user == objectOwner) | 264 | if (currentUser == objectOwner) |
265 | { | ||
267 | permission = true; | 266 | permission = true; |
267 | } | ||
268 | 268 | ||
269 | // Users should be able to edit what is over their land. | 269 | // Users should be able to edit what is over their land. |
270 | Land parcel = m_scene.LandManager.getLandObject(task.AbsolutePosition.X, task.AbsolutePosition.Y); | 270 | Land parcel = m_scene.LandManager.getLandObject(group.AbsolutePosition.X, group.AbsolutePosition.Y); |
271 | if (parcel != null && parcel.landData.ownerID == user) | 271 | if ((parcel != null) && ( parcel.landData.ownerID == currentUser)) |
272 | { | ||
272 | permission = true; | 273 | permission = true; |
274 | } | ||
273 | 275 | ||
274 | // Estate users should be able to edit anything in the sim | 276 | // Estate users should be able to edit anything in the sim |
275 | if (IsEstateManager(user)) | 277 | if (IsEstateManager(currentUser)) |
278 | { | ||
276 | permission = true; | 279 | permission = true; |
280 | } | ||
277 | 281 | ||
278 | // Admin objects should not be editable by the above | 282 | // Admin objects should not be editable by the above |
279 | if (IsAdministrator(taskOwner)) | 283 | if (IsAdministrator(objectOwner)) |
284 | { | ||
280 | permission = false; | 285 | permission = false; |
286 | } | ||
281 | 287 | ||
282 | // Admin should be able to edit anything in the sim (including admin objects) | 288 | // Admin should be able to edit anything in the sim (including admin objects) |
283 | if (IsAdministrator(user)) | 289 | if (IsAdministrator(currentUser)) |
290 | { | ||
284 | permission = true; | 291 | permission = true; |
292 | } | ||
285 | 293 | ||
286 | return permission; | 294 | return permission; |
287 | } | 295 | } |