diff options
author | Melanie Thielker | 2008-08-14 19:59:32 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-08-14 19:59:32 +0000 |
commit | 7161689a97edcdeceee3d3eeeaee7eadc4e06a89 (patch) | |
tree | a6b77bb4cb8598ce3075f8b5e58895fe0f7a0363 | |
parent | Make the estate owner work. Changes permissions checks to allow the (diff) | |
download | opensim-SC-7161689a97edcdeceee3d3eeeaee7eadc4e06a89.zip opensim-SC-7161689a97edcdeceee3d3eeeaee7eadc4e06a89.tar.gz opensim-SC-7161689a97edcdeceee3d3eeeaee7eadc4e06a89.tar.bz2 opensim-SC-7161689a97edcdeceee3d3eeeaee7eadc4e06a89.tar.xz |
Adds UserFlags and GodLevel to the user data store and plumbs then in.
This will have no effect unless both the UGAI and the region are
this revision or later
-rw-r--r-- | OpenSim/Data/MySQL/MySQLManager.cs | 15 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLUserData.cs | 2 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/Resources/003_UserStore.sql | 6 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/Resources/003_UserStore.sql | 6 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteUserData.cs | 6 | ||||
-rw-r--r-- | OpenSim/Framework/UserProfileData.cs | 20 | ||||
-rw-r--r-- | OpenSim/Grid/UserServer/UserManager.cs | 25 | ||||
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | 7 |
8 files changed, 82 insertions, 5 deletions
diff --git a/OpenSim/Data/MySQL/MySQLManager.cs b/OpenSim/Data/MySQL/MySQLManager.cs index 297b1a7..5e9e259 100644 --- a/OpenSim/Data/MySQL/MySQLManager.cs +++ b/OpenSim/Data/MySQL/MySQLManager.cs | |||
@@ -587,6 +587,9 @@ namespace OpenSim.Data.MySQL | |||
587 | LLUUID.TryParse((string)reader["webLoginKey"], out tmp); | 587 | LLUUID.TryParse((string)reader["webLoginKey"], out tmp); |
588 | retval.WebLoginKey = tmp; | 588 | retval.WebLoginKey = tmp; |
589 | } | 589 | } |
590 | |||
591 | retval.UserFlags = Convert.ToInt32(reader["userFlags"].ToString()); | ||
592 | retval.GodLevel = Convert.ToInt32(reader["godLevel"].ToString()); | ||
590 | 593 | ||
591 | } | 594 | } |
592 | else | 595 | else |
@@ -728,14 +731,14 @@ namespace OpenSim.Data.MySQL | |||
728 | "`homeLocationX`, `homeLocationY`, `homeLocationZ`, `homeLookAtX`, `homeLookAtY`, `homeLookAtZ`, `created`, "; | 731 | "`homeLocationX`, `homeLocationY`, `homeLocationZ`, `homeLookAtX`, `homeLookAtY`, `homeLookAtZ`, `created`, "; |
729 | sql += | 732 | sql += |
730 | "`lastLogin`, `userInventoryURI`, `userAssetURI`, `profileCanDoMask`, `profileWantDoMask`, `profileAboutText`, "; | 733 | "`lastLogin`, `userInventoryURI`, `userAssetURI`, `profileCanDoMask`, `profileWantDoMask`, `profileAboutText`, "; |
731 | sql += "`profileFirstText`, `profileImage`, `profileFirstImage`, `webLoginKey`) VALUES "; | 734 | sql += "`profileFirstText`, `profileImage`, `profileFirstImage`, `webLoginKey`, `userFlags`, `godLevel`) VALUES "; |
732 | 735 | ||
733 | sql += "(?UUID, ?username, ?lastname, ?passwordHash, ?passwordSalt, ?homeRegion, "; | 736 | sql += "(?UUID, ?username, ?lastname, ?passwordHash, ?passwordSalt, ?homeRegion, "; |
734 | sql += | 737 | sql += |
735 | "?homeLocationX, ?homeLocationY, ?homeLocationZ, ?homeLookAtX, ?homeLookAtY, ?homeLookAtZ, ?created, "; | 738 | "?homeLocationX, ?homeLocationY, ?homeLocationZ, ?homeLookAtX, ?homeLookAtY, ?homeLookAtZ, ?created, "; |
736 | sql += | 739 | sql += |
737 | "?lastLogin, ?userInventoryURI, ?userAssetURI, ?profileCanDoMask, ?profileWantDoMask, ?profileAboutText, "; | 740 | "?lastLogin, ?userInventoryURI, ?userAssetURI, ?profileCanDoMask, ?profileWantDoMask, ?profileAboutText, "; |
738 | sql += "?profileFirstText, ?profileImage, ?profileFirstImage, ?webLoginKey)"; | 741 | sql += "?profileFirstText, ?profileImage, ?profileFirstImage, ?webLoginKey, ?userFlags, ?godLevel)"; |
739 | 742 | ||
740 | Dictionary<string, string> parameters = new Dictionary<string, string>(); | 743 | Dictionary<string, string> parameters = new Dictionary<string, string>(); |
741 | parameters["?UUID"] = uuid.ToString(); | 744 | parameters["?UUID"] = uuid.ToString(); |
@@ -761,6 +764,9 @@ namespace OpenSim.Data.MySQL | |||
761 | parameters["?profileImage"] = profileImage.ToString(); | 764 | parameters["?profileImage"] = profileImage.ToString(); |
762 | parameters["?profileFirstImage"] = firstImage.ToString(); | 765 | parameters["?profileFirstImage"] = firstImage.ToString(); |
763 | parameters["?webLoginKey"] = string.Empty; | 766 | parameters["?webLoginKey"] = string.Empty; |
767 | parameters["?userFlags"] = "0"; | ||
768 | parameters["?godLevel"] = "0"; | ||
769 | |||
764 | 770 | ||
765 | bool returnval = false; | 771 | bool returnval = false; |
766 | 772 | ||
@@ -815,7 +821,7 @@ namespace OpenSim.Data.MySQL | |||
815 | float homeLookAtX, float homeLookAtY, float homeLookAtZ, int created, int lastlogin, | 821 | float homeLookAtX, float homeLookAtY, float homeLookAtZ, int created, int lastlogin, |
816 | string inventoryURI, string assetURI, uint canDoMask, uint wantDoMask, | 822 | string inventoryURI, string assetURI, uint canDoMask, uint wantDoMask, |
817 | string aboutText, string firstText, | 823 | string aboutText, string firstText, |
818 | LLUUID profileImage, LLUUID firstImage, LLUUID webLoginKey) | 824 | LLUUID profileImage, LLUUID firstImage, LLUUID webLoginKey, int userFlags, int godLevel) |
819 | { | 825 | { |
820 | string sql = "UPDATE users SET `username` = ?username , `lastname` = ?lastname "; | 826 | string sql = "UPDATE users SET `username` = ?username , `lastname` = ?lastname "; |
821 | sql += ", `passwordHash` = ?passwordHash , `passwordSalt` = ?passwordSalt , "; | 827 | sql += ", `passwordHash` = ?passwordHash , `passwordSalt` = ?passwordSalt , "; |
@@ -827,6 +833,7 @@ namespace OpenSim.Data.MySQL | |||
827 | sql += "`profileCanDoMask` = ?profileCanDoMask , `profileWantDoMask` = ?profileWantDoMask , "; | 833 | sql += "`profileCanDoMask` = ?profileCanDoMask , `profileWantDoMask` = ?profileWantDoMask , "; |
828 | sql += "`profileAboutText` = ?profileAboutText , `profileFirstText` = ?profileFirstText, "; | 834 | sql += "`profileAboutText` = ?profileAboutText , `profileFirstText` = ?profileFirstText, "; |
829 | sql += "`profileImage` = ?profileImage , `profileFirstImage` = ?profileFirstImage , "; | 835 | sql += "`profileImage` = ?profileImage , `profileFirstImage` = ?profileFirstImage , "; |
836 | sql += "`userFlags` = ?userFlags , `godLevel` = ?godLevel , "; | ||
830 | sql += "`webLoginKey` = ?webLoginKey WHERE UUID = ?UUID"; | 837 | sql += "`webLoginKey` = ?webLoginKey WHERE UUID = ?UUID"; |
831 | 838 | ||
832 | Dictionary<string, string> parameters = new Dictionary<string, string>(); | 839 | Dictionary<string, string> parameters = new Dictionary<string, string>(); |
@@ -854,6 +861,8 @@ namespace OpenSim.Data.MySQL | |||
854 | parameters["?profileImage"] = profileImage.ToString(); | 861 | parameters["?profileImage"] = profileImage.ToString(); |
855 | parameters["?profileFirstImage"] = firstImage.ToString(); | 862 | parameters["?profileFirstImage"] = firstImage.ToString(); |
856 | parameters["?webLoginKey"] = webLoginKey.ToString(); | 863 | parameters["?webLoginKey"] = webLoginKey.ToString(); |
864 | parameters["?userFlags"] = userFlags.ToString(); | ||
865 | parameters["?godLevel"] = userFlags.ToString(); | ||
857 | 866 | ||
858 | bool returnval = false; | 867 | bool returnval = false; |
859 | try | 868 | try |
diff --git a/OpenSim/Data/MySQL/MySQLUserData.cs b/OpenSim/Data/MySQL/MySQLUserData.cs index d7bf2a8..b7f4cbd 100644 --- a/OpenSim/Data/MySQL/MySQLUserData.cs +++ b/OpenSim/Data/MySQL/MySQLUserData.cs | |||
@@ -685,7 +685,7 @@ namespace OpenSim.Data.MySQL | |||
685 | user.HomeRegion, user.HomeRegionID, user.HomeLocation.X, user.HomeLocation.Y, user.HomeLocation.Z, user.HomeLookAt.X, | 685 | user.HomeRegion, user.HomeRegionID, user.HomeLocation.X, user.HomeLocation.Y, user.HomeLocation.Z, user.HomeLookAt.X, |
686 | user.HomeLookAt.Y, user.HomeLookAt.Z, user.Created, user.LastLogin, user.UserInventoryURI, | 686 | user.HomeLookAt.Y, user.HomeLookAt.Z, user.Created, user.LastLogin, user.UserInventoryURI, |
687 | user.UserAssetURI, user.CanDoMask, user.WantDoMask, user.AboutText, | 687 | user.UserAssetURI, user.CanDoMask, user.WantDoMask, user.AboutText, |
688 | user.FirstLifeAboutText, user.Image, user.FirstLifeImage, user.WebLoginKey); | 688 | user.FirstLifeAboutText, user.Image, user.FirstLifeImage, user.WebLoginKey, user.UserFlags, user.GodLevel); |
689 | } | 689 | } |
690 | 690 | ||
691 | return true; | 691 | return true; |
diff --git a/OpenSim/Data/MySQL/Resources/003_UserStore.sql b/OpenSim/Data/MySQL/Resources/003_UserStore.sql new file mode 100644 index 0000000..6f890ee --- /dev/null +++ b/OpenSim/Data/MySQL/Resources/003_UserStore.sql | |||
@@ -0,0 +1,6 @@ | |||
1 | BEGIN; | ||
2 | |||
3 | ALTER TABLE users add userFlags integer NOT NULL default 0; | ||
4 | ALTER TABLE users add godLevel integer NOT NULL default 0; | ||
5 | |||
6 | COMMIT; | ||
diff --git a/OpenSim/Data/SQLite/Resources/003_UserStore.sql b/OpenSim/Data/SQLite/Resources/003_UserStore.sql new file mode 100644 index 0000000..6f890ee --- /dev/null +++ b/OpenSim/Data/SQLite/Resources/003_UserStore.sql | |||
@@ -0,0 +1,6 @@ | |||
1 | BEGIN; | ||
2 | |||
3 | ALTER TABLE users add userFlags integer NOT NULL default 0; | ||
4 | ALTER TABLE users add godLevel integer NOT NULL default 0; | ||
5 | |||
6 | COMMIT; | ||
diff --git a/OpenSim/Data/SQLite/SQLiteUserData.cs b/OpenSim/Data/SQLite/SQLiteUserData.cs index 21c9dbc..c55eee8 100644 --- a/OpenSim/Data/SQLite/SQLiteUserData.cs +++ b/OpenSim/Data/SQLite/SQLiteUserData.cs | |||
@@ -681,6 +681,8 @@ namespace OpenSim.Data.SQLite | |||
681 | SQLiteUtil.createCol(users, "profileImage", typeof (String)); | 681 | SQLiteUtil.createCol(users, "profileImage", typeof (String)); |
682 | SQLiteUtil.createCol(users, "profileFirstImage", typeof (String)); | 682 | SQLiteUtil.createCol(users, "profileFirstImage", typeof (String)); |
683 | SQLiteUtil.createCol(users, "webLoginKey", typeof(String)); | 683 | SQLiteUtil.createCol(users, "webLoginKey", typeof(String)); |
684 | SQLiteUtil.createCol(users, "userFlags", typeof (Int32)); | ||
685 | SQLiteUtil.createCol(users, "godLevel", typeof (Int32)); | ||
684 | // Add in contraints | 686 | // Add in contraints |
685 | users.PrimaryKey = new DataColumn[] {users.Columns["UUID"]}; | 687 | users.PrimaryKey = new DataColumn[] {users.Columns["UUID"]}; |
686 | return users; | 688 | return users; |
@@ -789,6 +791,8 @@ namespace OpenSim.Data.SQLite | |||
789 | LLUUID.TryParse((String)row["profileFirstImage"], out tmp); | 791 | LLUUID.TryParse((String)row["profileFirstImage"], out tmp); |
790 | user.FirstLifeImage = tmp; | 792 | user.FirstLifeImage = tmp; |
791 | user.WebLoginKey = new LLUUID((String) row["webLoginKey"]); | 793 | user.WebLoginKey = new LLUUID((String) row["webLoginKey"]); |
794 | user.UserFlags = Convert.ToInt32(row["userFlags"]); | ||
795 | user.GodLevel = Convert.ToInt32(row["godLevel"]); | ||
792 | 796 | ||
793 | return user; | 797 | return user; |
794 | } | 798 | } |
@@ -829,6 +833,8 @@ namespace OpenSim.Data.SQLite | |||
829 | row["profileImage"] = user.Image; | 833 | row["profileImage"] = user.Image; |
830 | row["profileFirstImage"] = user.FirstLifeImage; | 834 | row["profileFirstImage"] = user.FirstLifeImage; |
831 | row["webLoginKey"] = user.WebLoginKey; | 835 | row["webLoginKey"] = user.WebLoginKey; |
836 | row["userFlags"] = user.UserFlags; | ||
837 | row["godLevel"] = user.GodLevel; | ||
832 | 838 | ||
833 | // ADO.NET doesn't handle NULL very well | 839 | // ADO.NET doesn't handle NULL very well |
834 | foreach (DataColumn col in ds.Tables["users"].Columns) | 840 | foreach (DataColumn col in ds.Tables["users"].Columns) |
diff --git a/OpenSim/Framework/UserProfileData.cs b/OpenSim/Framework/UserProfileData.cs index 2b0e15f..ec9c473 100644 --- a/OpenSim/Framework/UserProfileData.cs +++ b/OpenSim/Framework/UserProfileData.cs | |||
@@ -136,6 +136,12 @@ namespace OpenSim.Framework | |||
136 | /// </summary> | 136 | /// </summary> |
137 | private LLUUID _webLoginKey; | 137 | private LLUUID _webLoginKey; |
138 | 138 | ||
139 | // Data for estates and other goodies | ||
140 | // to get away from per-machine configs a little | ||
141 | // | ||
142 | private int _userFlags; | ||
143 | private int _godLevel; | ||
144 | |||
139 | /// <summary> | 145 | /// <summary> |
140 | /// The regionhandle of the users preffered home region. If multiple sims occupy the same spot, the grid may decide which region the user logs into | 146 | /// The regionhandle of the users preffered home region. If multiple sims occupy the same spot, the grid may decide which region the user logs into |
141 | /// </summary> | 147 | /// </summary> |
@@ -330,5 +336,17 @@ namespace OpenSim.Framework | |||
330 | get { return _currentAgent; } | 336 | get { return _currentAgent; } |
331 | set { _currentAgent = value; } | 337 | set { _currentAgent = value; } |
332 | } | 338 | } |
339 | |||
340 | public virtual int UserFlags | ||
341 | { | ||
342 | get { return _userFlags; } | ||
343 | set { _userFlags = value; } | ||
344 | } | ||
345 | |||
346 | public virtual int GodLevel | ||
347 | { | ||
348 | get { return _godLevel; } | ||
349 | set { _godLevel = value; } | ||
350 | } | ||
333 | } | 351 | } |
334 | } \ No newline at end of file | 352 | } |
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index 36f2a0d..5506631 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs | |||
@@ -156,6 +156,9 @@ namespace OpenSim.Grid.UserServer | |||
156 | responseData["home_look_x"] = profile.HomeLookAt.X.ToString(); | 156 | responseData["home_look_x"] = profile.HomeLookAt.X.ToString(); |
157 | responseData["home_look_y"] = profile.HomeLookAt.Y.ToString(); | 157 | responseData["home_look_y"] = profile.HomeLookAt.Y.ToString(); |
158 | responseData["home_look_z"] = profile.HomeLookAt.Z.ToString(); | 158 | responseData["home_look_z"] = profile.HomeLookAt.Z.ToString(); |
159 | |||
160 | responseData["user_flags"] = profile.UserFlags.ToString(); | ||
161 | responseData["god_level"] = profile.GodLevel.ToString(); | ||
159 | response.Value = responseData; | 162 | response.Value = responseData; |
160 | 163 | ||
161 | return response; | 164 | return response; |
@@ -638,6 +641,28 @@ namespace OpenSim.Grid.UserServer | |||
638 | m_log.Error("[PROFILE]:Failed to set home lookat z"); | 641 | m_log.Error("[PROFILE]:Failed to set home lookat z"); |
639 | } | 642 | } |
640 | } | 643 | } |
644 | if (requestData.Contains("user_flags")) | ||
645 | { | ||
646 | try | ||
647 | { | ||
648 | userProfile.UserFlags = Convert.ToInt32((string)requestData["user_flags"]); | ||
649 | } | ||
650 | catch (InvalidCastException) | ||
651 | { | ||
652 | m_log.Error("[PROFILE]:Failed to set user flags"); | ||
653 | } | ||
654 | } | ||
655 | if (requestData.Contains("god_level")) | ||
656 | { | ||
657 | try | ||
658 | { | ||
659 | userProfile.GodLevel = Convert.ToInt32((string)requestData["god_level"]); | ||
660 | } | ||
661 | catch (InvalidCastException) | ||
662 | { | ||
663 | m_log.Error("[PROFILE]:Failed to set god level"); | ||
664 | } | ||
665 | } | ||
641 | // call plugin! | 666 | // call plugin! |
642 | bool ret = UpdateUserProfileProperties(userProfile); | 667 | bool ret = UpdateUserProfileProperties(userProfile); |
643 | responseData["returnString"] = ret.ToString(); | 668 | responseData["returnString"] = ret.ToString(); |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index 2d37e2f..ee5c7bb 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | |||
@@ -85,6 +85,11 @@ namespace OpenSim.Region.Communications.OGS1 | |||
85 | new LLVector3((float) Convert.ToDecimal((string) data["home_look_x"]), | 85 | new LLVector3((float) Convert.ToDecimal((string) data["home_look_x"]), |
86 | (float) Convert.ToDecimal((string) data["home_look_y"]), | 86 | (float) Convert.ToDecimal((string) data["home_look_y"]), |
87 | (float) Convert.ToDecimal((string) data["home_look_z"])); | 87 | (float) Convert.ToDecimal((string) data["home_look_z"])); |
88 | if(data.Contains("user_flags")) | ||
89 | userData.UserFlags = Convert.ToInt32((string) data["user_flags"]); | ||
90 | if(data.Contains("god_level")) | ||
91 | userData.GodLevel = Convert.ToInt32((string) data["god_level"]); | ||
92 | |||
88 | return userData; | 93 | return userData; |
89 | } | 94 | } |
90 | 95 | ||
@@ -462,6 +467,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
462 | param["home_look_x"] = UserProfile.HomeLookAtX.ToString(); | 467 | param["home_look_x"] = UserProfile.HomeLookAtX.ToString(); |
463 | param["home_look_y"] = UserProfile.HomeLookAtY.ToString(); | 468 | param["home_look_y"] = UserProfile.HomeLookAtY.ToString(); |
464 | param["home_look_z"] = UserProfile.HomeLookAtZ.ToString(); | 469 | param["home_look_z"] = UserProfile.HomeLookAtZ.ToString(); |
470 | param["user_flags"] = UserProfile.UserFlags.ToString(); | ||
471 | param["god_level"] = UserProfile.GodLevel.ToString(); | ||
465 | 472 | ||
466 | IList parameters = new ArrayList(); | 473 | IList parameters = new ArrayList(); |
467 | parameters.Add(param); | 474 | parameters.Add(param); |