diff options
author | Melanie Thielker | 2009-06-14 21:44:34 +0000 |
---|---|---|
committer | Melanie Thielker | 2009-06-14 21:44:34 +0000 |
commit | 664dd58cd9a8318c14fc3e3a3950c3e29cf97ba8 (patch) | |
tree | 41db60d59a2f0b46388e1e598679265dafc9d247 /OpenSim/Data/MSSQL/MSSQLRegionData.cs | |
parent | Update svn properties. (diff) | |
download | opensim-SC-664dd58cd9a8318c14fc3e3a3950c3e29cf97ba8.zip opensim-SC-664dd58cd9a8318c14fc3e3a3950c3e29cf97ba8.tar.gz opensim-SC-664dd58cd9a8318c14fc3e3a3950c3e29cf97ba8.tar.bz2 opensim-SC-664dd58cd9a8318c14fc3e3a3950c3e29cf97ba8.tar.xz |
Fixes Mantis #3793 . Committing thomax/Snoopy's patch to allow deeding of objects, with changes:
- Set OwnerID = GroupID for deeded objects.
- Close a security loophole that would have allowed a user with deed rights in a group to deed ANY object to that group, even if it's not owned by them and/or not set to that group
- Set LastOwnerID correctly. Handle objects vs. prims correctly.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Data/MSSQL/MSSQLRegionData.cs | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs index a171853..bd7a281 100644 --- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs +++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs | |||
@@ -317,7 +317,7 @@ IF EXISTS (SELECT UUID FROM prims WHERE UUID = @UUID) | |||
317 | CameraAtOffsetY = @CameraAtOffsetY, CameraAtOffsetZ = @CameraAtOffsetZ, ForceMouselook = @ForceMouselook, | 317 | CameraAtOffsetY = @CameraAtOffsetY, CameraAtOffsetZ = @CameraAtOffsetZ, ForceMouselook = @ForceMouselook, |
318 | ScriptAccessPin = @ScriptAccessPin, AllowedDrop = @AllowedDrop, DieAtEdge = @DieAtEdge, SalePrice = @SalePrice, | 318 | ScriptAccessPin = @ScriptAccessPin, AllowedDrop = @AllowedDrop, DieAtEdge = @DieAtEdge, SalePrice = @SalePrice, |
319 | SaleType = @SaleType, ColorR = @ColorR, ColorG = @ColorG, ColorB = @ColorB, ColorA = @ColorA, ParticleSystem = @ParticleSystem, | 319 | SaleType = @SaleType, ColorR = @ColorR, ColorG = @ColorG, ColorB = @ColorB, ColorA = @ColorA, ParticleSystem = @ParticleSystem, |
320 | ClickAction = @ClickAction, Material = @Material, CollisionSound = @CollisionSound, CollisionSoundVolume = @CollisionSoundVolume, | 320 | ClickAction = @ClickAction, Material = @Material, CollisionSound = @CollisionSound, CollisionSoundVolume = @CollisionSoundVolume, PassTouches = @PassTouches, |
321 | LinkNumber = @LinkNumber | 321 | LinkNumber = @LinkNumber |
322 | WHERE UUID = @UUID | 322 | WHERE UUID = @UUID |
323 | END | 323 | END |
@@ -333,7 +333,7 @@ ELSE | |||
333 | PayPrice, PayButton1, PayButton2, PayButton3, PayButton4, LoopedSound, LoopedSoundGain, TextureAnimation, OmegaX, | 333 | PayPrice, PayButton1, PayButton2, PayButton3, PayButton4, LoopedSound, LoopedSoundGain, TextureAnimation, OmegaX, |
334 | OmegaY, OmegaZ, CameraEyeOffsetX, CameraEyeOffsetY, CameraEyeOffsetZ, CameraAtOffsetX, CameraAtOffsetY, CameraAtOffsetZ, | 334 | OmegaY, OmegaZ, CameraEyeOffsetX, CameraEyeOffsetY, CameraEyeOffsetZ, CameraAtOffsetX, CameraAtOffsetY, CameraAtOffsetZ, |
335 | ForceMouselook, ScriptAccessPin, AllowedDrop, DieAtEdge, SalePrice, SaleType, ColorR, ColorG, ColorB, ColorA, | 335 | ForceMouselook, ScriptAccessPin, AllowedDrop, DieAtEdge, SalePrice, SaleType, ColorR, ColorG, ColorB, ColorA, |
336 | ParticleSystem, ClickAction, Material, CollisionSound, CollisionSoundVolume, LinkNumber | 336 | ParticleSystem, ClickAction, Material, CollisionSound, CollisionSoundVolume, PassTouches, LinkNumber |
337 | ) VALUES ( | 337 | ) VALUES ( |
338 | @UUID, @CreationDate, @Name, @Text, @Description, @SitName, @TouchName, @ObjectFlags, @OwnerMask, @NextOwnerMask, @GroupMask, | 338 | @UUID, @CreationDate, @Name, @Text, @Description, @SitName, @TouchName, @ObjectFlags, @OwnerMask, @NextOwnerMask, @GroupMask, |
339 | @EveryoneMask, @BaseMask, @PositionX, @PositionY, @PositionZ, @GroupPositionX, @GroupPositionY, @GroupPositionZ, @VelocityX, | 339 | @EveryoneMask, @BaseMask, @PositionX, @PositionY, @PositionZ, @GroupPositionX, @GroupPositionY, @GroupPositionZ, @VelocityX, |
@@ -343,7 +343,7 @@ ELSE | |||
343 | @PayPrice, @PayButton1, @PayButton2, @PayButton3, @PayButton4, @LoopedSound, @LoopedSoundGain, @TextureAnimation, @OmegaX, | 343 | @PayPrice, @PayButton1, @PayButton2, @PayButton3, @PayButton4, @LoopedSound, @LoopedSoundGain, @TextureAnimation, @OmegaX, |
344 | @OmegaY, @OmegaZ, @CameraEyeOffsetX, @CameraEyeOffsetY, @CameraEyeOffsetZ, @CameraAtOffsetX, @CameraAtOffsetY, @CameraAtOffsetZ, | 344 | @OmegaY, @OmegaZ, @CameraEyeOffsetX, @CameraEyeOffsetY, @CameraEyeOffsetZ, @CameraAtOffsetX, @CameraAtOffsetY, @CameraAtOffsetZ, |
345 | @ForceMouselook, @ScriptAccessPin, @AllowedDrop, @DieAtEdge, @SalePrice, @SaleType, @ColorR, @ColorG, @ColorB, @ColorA, | 345 | @ForceMouselook, @ScriptAccessPin, @AllowedDrop, @DieAtEdge, @SalePrice, @SaleType, @ColorR, @ColorG, @ColorB, @ColorA, |
346 | @ParticleSystem, @ClickAction, @Material, @CollisionSound, @CollisionSoundVolume, @LinkNumber | 346 | @ParticleSystem, @ClickAction, @Material, @CollisionSound, @CollisionSoundVolume, @PassTouches, @LinkNumber |
347 | ) | 347 | ) |
348 | END"; | 348 | END"; |
349 | 349 | ||
@@ -723,7 +723,8 @@ VALUES | |||
723 | ,[elevation_1_ne] = @elevation_1_ne ,[elevation_2_ne] = @elevation_2_ne ,[elevation_1_se] = @elevation_1_se ,[elevation_2_se] = @elevation_2_se | 723 | ,[elevation_1_ne] = @elevation_1_ne ,[elevation_2_ne] = @elevation_2_ne ,[elevation_1_se] = @elevation_1_se ,[elevation_2_se] = @elevation_2_se |
724 | ,[elevation_1_sw] = @elevation_1_sw ,[elevation_2_sw] = @elevation_2_sw ,[water_height] = @water_height ,[terrain_raise_limit] = @terrain_raise_limit | 724 | ,[elevation_1_sw] = @elevation_1_sw ,[elevation_2_sw] = @elevation_2_sw ,[water_height] = @water_height ,[terrain_raise_limit] = @terrain_raise_limit |
725 | ,[terrain_lower_limit] = @terrain_lower_limit ,[use_estate_sun] = @use_estate_sun ,[fixed_sun] = @fixed_sun ,[sun_position] = @sun_position | 725 | ,[terrain_lower_limit] = @terrain_lower_limit ,[use_estate_sun] = @use_estate_sun ,[fixed_sun] = @fixed_sun ,[sun_position] = @sun_position |
726 | ,[covenant] = @covenant , [sunvectorx] = @sunvectorx, [sunvectory] = @sunvectory, [sunvectorz] = @sunvectorz, [Sandbox] = @Sandbox WHERE [regionUUID] = @regionUUID"; | 726 | ,[covenant] = @covenant , [sunvectorx] = @sunvectorx, [sunvectory] = @sunvectory, [sunvectorz] = @sunvectorz, [Sandbox] = @Sandbox, [loaded_creation_date] = @loaded_creation_date, [loaded_creation_time] = @loaded_creation_time, [loaded_creation_id] = @loaded_creation_id |
727 | WHERE [regionUUID] = @regionUUID"; | ||
727 | 728 | ||
728 | using (AutoClosingSqlCommand cmd = _Database.Query(sql)) | 729 | using (AutoClosingSqlCommand cmd = _Database.Query(sql)) |
729 | { | 730 | { |
@@ -776,13 +777,14 @@ VALUES | |||
776 | [block_show_in_search],[agent_limit],[object_bonus],[maturity],[disable_scripts],[disable_collisions],[disable_physics], | 777 | [block_show_in_search],[agent_limit],[object_bonus],[maturity],[disable_scripts],[disable_collisions],[disable_physics], |
777 | [terrain_texture_1],[terrain_texture_2],[terrain_texture_3],[terrain_texture_4],[elevation_1_nw],[elevation_2_nw],[elevation_1_ne], | 778 | [terrain_texture_1],[terrain_texture_2],[terrain_texture_3],[terrain_texture_4],[elevation_1_nw],[elevation_2_nw],[elevation_1_ne], |
778 | [elevation_2_ne],[elevation_1_se],[elevation_2_se],[elevation_1_sw],[elevation_2_sw],[water_height],[terrain_raise_limit], | 779 | [elevation_2_ne],[elevation_1_se],[elevation_2_se],[elevation_1_sw],[elevation_2_sw],[water_height],[terrain_raise_limit], |
779 | [terrain_lower_limit],[use_estate_sun],[fixed_sun],[sun_position],[covenant],[sunvectorx], [sunvectory], [sunvectorz],[Sandbox]) | 780 | [terrain_lower_limit],[use_estate_sun],[fixed_sun],[sun_position],[covenant],[sunvectorx], [sunvectory], [sunvectorz],[Sandbox], [loaded_creation_date], [loaded_creation_time], [loaded_creation_id] |
781 | ) | ||
780 | VALUES | 782 | VALUES |
781 | (@regionUUID,@block_terraform,@block_fly,@allow_damage,@restrict_pushing,@allow_land_resell,@allow_land_join_divide, | 783 | (@regionUUID,@block_terraform,@block_fly,@allow_damage,@restrict_pushing,@allow_land_resell,@allow_land_join_divide, |
782 | @block_show_in_search,@agent_limit,@object_bonus,@maturity,@disable_scripts,@disable_collisions,@disable_physics, | 784 | @block_show_in_search,@agent_limit,@object_bonus,@maturity,@disable_scripts,@disable_collisions,@disable_physics, |
783 | @terrain_texture_1,@terrain_texture_2,@terrain_texture_3,@terrain_texture_4,@elevation_1_nw,@elevation_2_nw,@elevation_1_ne, | 785 | @terrain_texture_1,@terrain_texture_2,@terrain_texture_3,@terrain_texture_4,@elevation_1_nw,@elevation_2_nw,@elevation_1_ne, |
784 | @elevation_2_ne,@elevation_1_se,@elevation_2_se,@elevation_1_sw,@elevation_2_sw,@water_height,@terrain_raise_limit, | 786 | @elevation_2_ne,@elevation_1_se,@elevation_2_se,@elevation_1_sw,@elevation_2_sw,@water_height,@terrain_raise_limit, |
785 | @terrain_lower_limit,@use_estate_sun,@fixed_sun,@sun_position,@covenant,@sunvectorx,@sunvectory, @sunvectorz, @Sandbox)"; | 787 | @terrain_lower_limit,@use_estate_sun,@fixed_sun,@sun_position,@covenant,@sunvectorx,@sunvectory, @sunvectorz, @Sandbox, @loaded_creation_date, @loaded_creation_time, @loaded_creation_id )"; |
786 | 788 | ||
787 | using (AutoClosingSqlCommand cmd = _Database.Query(sql)) | 789 | using (AutoClosingSqlCommand cmd = _Database.Query(sql)) |
788 | { | 790 | { |
@@ -843,6 +845,20 @@ VALUES | |||
843 | ); | 845 | ); |
844 | newSettings.Covenant = new UUID((Guid)row["covenant"]); | 846 | newSettings.Covenant = new UUID((Guid)row["covenant"]); |
845 | 847 | ||
848 | if (row["loaded_creation_date"] is DBNull) | ||
849 | newSettings.LoadedCreationDate = ""; | ||
850 | else | ||
851 | newSettings.LoadedCreationDate = (String)row["loaded_creation_date"]; | ||
852 | |||
853 | if (row["loaded_creation_time"] is DBNull) | ||
854 | newSettings.LoadedCreationTime = ""; | ||
855 | else | ||
856 | newSettings.LoadedCreationTime = (String)row["loaded_creation_time"]; | ||
857 | |||
858 | if (row["loaded_creation_id"] is DBNull) | ||
859 | newSettings.LoadedCreationID = ""; | ||
860 | else | ||
861 | newSettings.LoadedCreationID = (String)row["loaded_creation_id"]; | ||
846 | return newSettings; | 862 | return newSettings; |
847 | } | 863 | } |
848 | 864 | ||
@@ -1064,7 +1080,8 @@ VALUES | |||
1064 | 1080 | ||
1065 | prim.CollisionSound = new UUID((Guid)primRow["CollisionSound"]); | 1081 | prim.CollisionSound = new UUID((Guid)primRow["CollisionSound"]); |
1066 | prim.CollisionSoundVolume = Convert.ToSingle(primRow["CollisionSoundVolume"]); | 1082 | prim.CollisionSoundVolume = Convert.ToSingle(primRow["CollisionSoundVolume"]); |
1067 | 1083 | if (Convert.ToInt16(primRow["PassTouches"]) != 0) | |
1084 | prim.PassTouches = true; | ||
1068 | prim.LinkNum = Convert.ToInt32(primRow["LinkNumber"]); | 1085 | prim.LinkNum = Convert.ToInt32(primRow["LinkNumber"]); |
1069 | 1086 | ||
1070 | return prim; | 1087 | return prim; |
@@ -1240,6 +1257,9 @@ VALUES | |||
1240 | parameters.Add(_Database.CreateParameter("sunvectory", settings.SunVector.Y)); | 1257 | parameters.Add(_Database.CreateParameter("sunvectory", settings.SunVector.Y)); |
1241 | parameters.Add(_Database.CreateParameter("sunvectorz", settings.SunVector.Z)); | 1258 | parameters.Add(_Database.CreateParameter("sunvectorz", settings.SunVector.Z)); |
1242 | parameters.Add(_Database.CreateParameter("covenant", settings.Covenant)); | 1259 | parameters.Add(_Database.CreateParameter("covenant", settings.Covenant)); |
1260 | parameters.Add(_Database.CreateParameter("LoadedCreationDate", settings.LoadedCreationDate)); | ||
1261 | parameters.Add(_Database.CreateParameter("LoadedCreationTime", settings.LoadedCreationTime)); | ||
1262 | parameters.Add(_Database.CreateParameter("LoadedCreationID", settings.LoadedCreationID)); | ||
1243 | 1263 | ||
1244 | return parameters.ToArray(); | 1264 | return parameters.ToArray(); |
1245 | } | 1265 | } |
@@ -1442,6 +1462,10 @@ VALUES | |||
1442 | 1462 | ||
1443 | parameters.Add(_Database.CreateParameter("CollisionSound", prim.CollisionSound)); | 1463 | parameters.Add(_Database.CreateParameter("CollisionSound", prim.CollisionSound)); |
1444 | parameters.Add(_Database.CreateParameter("CollisionSoundVolume", prim.CollisionSoundVolume)); | 1464 | parameters.Add(_Database.CreateParameter("CollisionSoundVolume", prim.CollisionSoundVolume)); |
1465 | if (prim.PassTouches) | ||
1466 | parameters.Add(_Database.CreateParameter("PassTouches", 1)); | ||
1467 | else | ||
1468 | parameters.Add(_Database.CreateParameter("PassTouches", 0)); | ||
1445 | parameters.Add(_Database.CreateParameter("LinkNumber", prim.LinkNum)); | 1469 | parameters.Add(_Database.CreateParameter("LinkNumber", prim.LinkNum)); |
1446 | 1470 | ||
1447 | return parameters.ToArray(); | 1471 | return parameters.ToArray(); |