aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Data/MySQL/MySQLManager.cs27
-rw-r--r--OpenSim/Data/MySQL/MySQLUserData.cs2
-rw-r--r--OpenSim/Data/MySQL/Resources/004_UserStore.sql6
-rw-r--r--OpenSim/Data/SQLite/Resources/004_UserStore.sql6
-rw-r--r--OpenSim/Data/SQLite/SQLiteUserData.cs6
-rw-r--r--OpenSim/Framework/UserProfileData.cs14
-rw-r--r--OpenSim/Grid/UserServer/UserManager.cs29
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1UserServices.cs14
-rw-r--r--OpenSim/Region/Environment/Modules/Avatar/Profiles/AvatarProfilesModule.cs15
9 files changed, 110 insertions, 9 deletions
diff --git a/OpenSim/Data/MySQL/MySQLManager.cs b/OpenSim/Data/MySQL/MySQLManager.cs
index d2b436c..58599a8 100644
--- a/OpenSim/Data/MySQL/MySQLManager.cs
+++ b/OpenSim/Data/MySQL/MySQLManager.cs
@@ -590,7 +590,21 @@ namespace OpenSim.Data.MySQL
590 590
591 retval.UserFlags = Convert.ToInt32(reader["userFlags"].ToString()); 591 retval.UserFlags = Convert.ToInt32(reader["userFlags"].ToString());
592 retval.GodLevel = Convert.ToInt32(reader["godLevel"].ToString()); 592 retval.GodLevel = Convert.ToInt32(reader["godLevel"].ToString());
593 593 if (reader.IsDBNull(reader.GetOrdinal("customType")))
594 retval.CustomType = "";
595 else
596 retval.CustomType = reader["customType"].ToString();
597
598 if (reader.IsDBNull(reader.GetOrdinal("partner")))
599 {
600 retval.Partner = LLUUID.Zero;
601 }
602 else
603 {
604 LLUUID tmp;
605 LLUUID.TryParse((string)reader["partner"], out tmp);
606 retval.Partner = tmp;
607 }
594 } 608 }
595 else 609 else
596 { 610 {
@@ -731,14 +745,14 @@ namespace OpenSim.Data.MySQL
731 "`homeLocationX`, `homeLocationY`, `homeLocationZ`, `homeLookAtX`, `homeLookAtY`, `homeLookAtZ`, `created`, "; 745 "`homeLocationX`, `homeLocationY`, `homeLocationZ`, `homeLookAtX`, `homeLookAtY`, `homeLookAtZ`, `created`, ";
732 sql += 746 sql +=
733 "`lastLogin`, `userInventoryURI`, `userAssetURI`, `profileCanDoMask`, `profileWantDoMask`, `profileAboutText`, "; 747 "`lastLogin`, `userInventoryURI`, `userAssetURI`, `profileCanDoMask`, `profileWantDoMask`, `profileAboutText`, ";
734 sql += "`profileFirstText`, `profileImage`, `profileFirstImage`, `webLoginKey`, `userFlags`, `godLevel`) VALUES "; 748 sql += "`profileFirstText`, `profileImage`, `profileFirstImage`, `webLoginKey`, `userFlags`, `godLevel`, `customType`, `partner`) VALUES ";
735 749
736 sql += "(?UUID, ?username, ?lastname, ?passwordHash, ?passwordSalt, ?homeRegion, "; 750 sql += "(?UUID, ?username, ?lastname, ?passwordHash, ?passwordSalt, ?homeRegion, ";
737 sql += 751 sql +=
738 "?homeLocationX, ?homeLocationY, ?homeLocationZ, ?homeLookAtX, ?homeLookAtY, ?homeLookAtZ, ?created, "; 752 "?homeLocationX, ?homeLocationY, ?homeLocationZ, ?homeLookAtX, ?homeLookAtY, ?homeLookAtZ, ?created, ";
739 sql += 753 sql +=
740 "?lastLogin, ?userInventoryURI, ?userAssetURI, ?profileCanDoMask, ?profileWantDoMask, ?profileAboutText, "; 754 "?lastLogin, ?userInventoryURI, ?userAssetURI, ?profileCanDoMask, ?profileWantDoMask, ?profileAboutText, ";
741 sql += "?profileFirstText, ?profileImage, ?profileFirstImage, ?webLoginKey, ?userFlags, ?godLevel)"; 755 sql += "?profileFirstText, ?profileImage, ?profileFirstImage, ?webLoginKey, ?userFlags, ?godLevel, ?customType, ?partner)";
742 756
743 Dictionary<string, string> parameters = new Dictionary<string, string>(); 757 Dictionary<string, string> parameters = new Dictionary<string, string>();
744 parameters["?UUID"] = uuid.ToString(); 758 parameters["?UUID"] = uuid.ToString();
@@ -766,6 +780,8 @@ namespace OpenSim.Data.MySQL
766 parameters["?webLoginKey"] = string.Empty; 780 parameters["?webLoginKey"] = string.Empty;
767 parameters["?userFlags"] = "0"; 781 parameters["?userFlags"] = "0";
768 parameters["?godLevel"] = "0"; 782 parameters["?godLevel"] = "0";
783 parameters["?customType"] = "";
784 parameters["?partner"] = "";
769 785
770 786
771 bool returnval = false; 787 bool returnval = false;
@@ -821,7 +837,7 @@ namespace OpenSim.Data.MySQL
821 float homeLookAtX, float homeLookAtY, float homeLookAtZ, int created, int lastlogin, 837 float homeLookAtX, float homeLookAtY, float homeLookAtZ, int created, int lastlogin,
822 string inventoryURI, string assetURI, uint canDoMask, uint wantDoMask, 838 string inventoryURI, string assetURI, uint canDoMask, uint wantDoMask,
823 string aboutText, string firstText, 839 string aboutText, string firstText,
824 LLUUID profileImage, LLUUID firstImage, LLUUID webLoginKey, int userFlags, int godLevel) 840 LLUUID profileImage, LLUUID firstImage, LLUUID webLoginKey, int userFlags, int godLevel, string customType, LLUUID partner)
825 { 841 {
826 string sql = "UPDATE users SET `username` = ?username , `lastname` = ?lastname "; 842 string sql = "UPDATE users SET `username` = ?username , `lastname` = ?lastname ";
827 sql += ", `passwordHash` = ?passwordHash , `passwordSalt` = ?passwordSalt , "; 843 sql += ", `passwordHash` = ?passwordHash , `passwordSalt` = ?passwordSalt , ";
@@ -834,6 +850,7 @@ namespace OpenSim.Data.MySQL
834 sql += "`profileAboutText` = ?profileAboutText , `profileFirstText` = ?profileFirstText, "; 850 sql += "`profileAboutText` = ?profileAboutText , `profileFirstText` = ?profileFirstText, ";
835 sql += "`profileImage` = ?profileImage , `profileFirstImage` = ?profileFirstImage , "; 851 sql += "`profileImage` = ?profileImage , `profileFirstImage` = ?profileFirstImage , ";
836 sql += "`userFlags` = ?userFlags , `godLevel` = ?godLevel , "; 852 sql += "`userFlags` = ?userFlags , `godLevel` = ?godLevel , ";
853 sql += "`customType` = ?customType , `partner` = ?partner , ";
837 sql += "`webLoginKey` = ?webLoginKey WHERE UUID = ?UUID"; 854 sql += "`webLoginKey` = ?webLoginKey WHERE UUID = ?UUID";
838 855
839 Dictionary<string, string> parameters = new Dictionary<string, string>(); 856 Dictionary<string, string> parameters = new Dictionary<string, string>();
@@ -863,6 +880,8 @@ namespace OpenSim.Data.MySQL
863 parameters["?webLoginKey"] = webLoginKey.ToString(); 880 parameters["?webLoginKey"] = webLoginKey.ToString();
864 parameters["?userFlags"] = userFlags.ToString(); 881 parameters["?userFlags"] = userFlags.ToString();
865 parameters["?godLevel"] = godLevel.ToString(); 882 parameters["?godLevel"] = godLevel.ToString();
883 parameters["?customType"] = customType.ToString();
884 parameters["?partner"] = partner.ToString();
866 885
867 bool returnval = false; 886 bool returnval = false;
868 try 887 try
diff --git a/OpenSim/Data/MySQL/MySQLUserData.cs b/OpenSim/Data/MySQL/MySQLUserData.cs
index b7f4cbd..f77d947 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, user.UserFlags, user.GodLevel); 688 user.FirstLifeAboutText, user.Image, user.FirstLifeImage, user.WebLoginKey, user.UserFlags, user.GodLevel, user.CustomType, user.Partner);
689 } 689 }
690 690
691 return true; 691 return true;
diff --git a/OpenSim/Data/MySQL/Resources/004_UserStore.sql b/OpenSim/Data/MySQL/Resources/004_UserStore.sql
new file mode 100644
index 0000000..03142af
--- /dev/null
+++ b/OpenSim/Data/MySQL/Resources/004_UserStore.sql
@@ -0,0 +1,6 @@
1BEGIN;
2
3ALTER TABLE users add customType varchar(32) not null default '';
4ALTER TABLE users add partner char(36) not null default '00000000-0000-0000-0000-000000000000';
5
6COMMIT;
diff --git a/OpenSim/Data/SQLite/Resources/004_UserStore.sql b/OpenSim/Data/SQLite/Resources/004_UserStore.sql
new file mode 100644
index 0000000..03142af
--- /dev/null
+++ b/OpenSim/Data/SQLite/Resources/004_UserStore.sql
@@ -0,0 +1,6 @@
1BEGIN;
2
3ALTER TABLE users add customType varchar(32) not null default '';
4ALTER TABLE users add partner char(36) not null default '00000000-0000-0000-0000-000000000000';
5
6COMMIT;
diff --git a/OpenSim/Data/SQLite/SQLiteUserData.cs b/OpenSim/Data/SQLite/SQLiteUserData.cs
index c55eee8..910d313 100644
--- a/OpenSim/Data/SQLite/SQLiteUserData.cs
+++ b/OpenSim/Data/SQLite/SQLiteUserData.cs
@@ -683,6 +683,8 @@ namespace OpenSim.Data.SQLite
683 SQLiteUtil.createCol(users, "webLoginKey", typeof(String)); 683 SQLiteUtil.createCol(users, "webLoginKey", typeof(String));
684 SQLiteUtil.createCol(users, "userFlags", typeof (Int32)); 684 SQLiteUtil.createCol(users, "userFlags", typeof (Int32));
685 SQLiteUtil.createCol(users, "godLevel", typeof (Int32)); 685 SQLiteUtil.createCol(users, "godLevel", typeof (Int32));
686 SQLiteUtil.createCol(users, "customType", typeof (String));
687 SQLiteUtil.createCol(users, "partner", typeof (String));
686 // Add in contraints 688 // Add in contraints
687 users.PrimaryKey = new DataColumn[] {users.Columns["UUID"]}; 689 users.PrimaryKey = new DataColumn[] {users.Columns["UUID"]};
688 return users; 690 return users;
@@ -793,6 +795,8 @@ namespace OpenSim.Data.SQLite
793 user.WebLoginKey = new LLUUID((String) row["webLoginKey"]); 795 user.WebLoginKey = new LLUUID((String) row["webLoginKey"]);
794 user.UserFlags = Convert.ToInt32(row["userFlags"]); 796 user.UserFlags = Convert.ToInt32(row["userFlags"]);
795 user.GodLevel = Convert.ToInt32(row["godLevel"]); 797 user.GodLevel = Convert.ToInt32(row["godLevel"]);
798 user.CustomType = row["customType"].ToString();
799 user.Partner = new LLUUID((String) row["partner"]);
796 800
797 return user; 801 return user;
798 } 802 }
@@ -835,6 +839,8 @@ namespace OpenSim.Data.SQLite
835 row["webLoginKey"] = user.WebLoginKey; 839 row["webLoginKey"] = user.WebLoginKey;
836 row["userFlags"] = user.UserFlags; 840 row["userFlags"] = user.UserFlags;
837 row["godLevel"] = user.GodLevel; 841 row["godLevel"] = user.GodLevel;
842 row["customType"] = user.CustomType;
843 row["partner"] = user.Partner.ToString();
838 844
839 // ADO.NET doesn't handle NULL very well 845 // ADO.NET doesn't handle NULL very well
840 foreach (DataColumn col in ds.Tables["users"].Columns) 846 foreach (DataColumn col in ds.Tables["users"].Columns)
diff --git a/OpenSim/Framework/UserProfileData.cs b/OpenSim/Framework/UserProfileData.cs
index ec9c473..d0b4c25 100644
--- a/OpenSim/Framework/UserProfileData.cs
+++ b/OpenSim/Framework/UserProfileData.cs
@@ -141,6 +141,8 @@ namespace OpenSim.Framework
141 // 141 //
142 private int _userFlags; 142 private int _userFlags;
143 private int _godLevel; 143 private int _godLevel;
144 private string _customType;
145 private LLUUID _partner;
144 146
145 /// <summary> 147 /// <summary>
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 148 /// 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
@@ -348,5 +350,17 @@ namespace OpenSim.Framework
348 get { return _godLevel; } 350 get { return _godLevel; }
349 set { _godLevel = value; } 351 set { _godLevel = value; }
350 } 352 }
353
354 public virtual string CustomType
355 {
356 get { return _customType; }
357 set { _customType = value; }
358 }
359
360 public virtual LLUUID Partner
361 {
362 get { return _partner; }
363 set { _partner = value; }
364 }
351 } 365 }
352} 366}
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs
index 5506631..b1d95da 100644
--- a/OpenSim/Grid/UserServer/UserManager.cs
+++ b/OpenSim/Grid/UserServer/UserManager.cs
@@ -159,6 +159,8 @@ namespace OpenSim.Grid.UserServer
159 159
160 responseData["user_flags"] = profile.UserFlags.ToString(); 160 responseData["user_flags"] = profile.UserFlags.ToString();
161 responseData["god_level"] = profile.GodLevel.ToString(); 161 responseData["god_level"] = profile.GodLevel.ToString();
162 responseData["custom_type"] = profile.CustomType.ToString();
163 responseData["partner"] = profile.Partner.ToString();
162 response.Value = responseData; 164 response.Value = responseData;
163 165
164 return response; 166 return response;
@@ -663,6 +665,33 @@ namespace OpenSim.Grid.UserServer
663 m_log.Error("[PROFILE]:Failed to set god level"); 665 m_log.Error("[PROFILE]:Failed to set god level");
664 } 666 }
665 } 667 }
668 if (requestData.Contains("custom_type"))
669 {
670 try
671 {
672 userProfile.CustomType = (string)requestData["custom_type"];
673 }
674 catch (InvalidCastException)
675 {
676 m_log.Error("[PROFILE]:Failed to set custom type");
677 }
678 }
679 if (requestData.Contains("partner"))
680 {
681 try
682 {
683 userProfile.Partner = new LLUUID((string)requestData["partner"]);
684 }
685 catch (InvalidCastException)
686 {
687 m_log.Error("[PROFILE]:Failed to set partner");
688 }
689 }
690 else
691 {
692 userProfile.Partner = LLUUID.Zero;
693 }
694
666 // call plugin! 695 // call plugin!
667 bool ret = UpdateUserProfileProperties(userProfile); 696 bool ret = UpdateUserProfileProperties(userProfile);
668 responseData["returnString"] = ret.ToString(); 697 responseData["returnString"] = ret.ToString();
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
index 01b1933..3d42dfd 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
@@ -92,6 +92,18 @@ namespace OpenSim.Region.Communications.OGS1
92 if (data.Contains("god_level")) 92 if (data.Contains("god_level"))
93 userData.GodLevel = Convert.ToInt32((string) data["god_level"]); 93 userData.GodLevel = Convert.ToInt32((string) data["god_level"]);
94 94
95 if (data.Contains("custom_type"))
96 userData.CustomType = (string) data["custom_type"];
97 else
98 userData.CustomType = "";
99 if(userData.CustomType == null)
100 userData.CustomType = "";
101
102 if (data.Contains("partner"))
103 userData.Partner = new LLUUID((string) data["partner"]);
104 else
105 userData.Partner = LLUUID.Zero;
106
95 return userData; 107 return userData;
96 } 108 }
97 109
@@ -471,6 +483,8 @@ namespace OpenSim.Region.Communications.OGS1
471 param["home_look_z"] = UserProfile.HomeLookAtZ.ToString(); 483 param["home_look_z"] = UserProfile.HomeLookAtZ.ToString();
472 param["user_flags"] = UserProfile.UserFlags.ToString(); 484 param["user_flags"] = UserProfile.UserFlags.ToString();
473 param["god_level"] = UserProfile.GodLevel.ToString(); 485 param["god_level"] = UserProfile.GodLevel.ToString();
486 param["custom_type"] = UserProfile.CustomType.ToString();
487 param["partner"] = UserProfile.Partner.ToString();
474 488
475 IList parameters = new ArrayList(); 489 IList parameters = new ArrayList();
476 parameters.Add(param); 490 parameters.Add(param);
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Profiles/AvatarProfilesModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Profiles/AvatarProfilesModule.cs
index 881889f..1d1d503 100644
--- a/OpenSim/Region/Environment/Modules/Avatar/Profiles/AvatarProfilesModule.cs
+++ b/OpenSim/Region/Environment/Modules/Avatar/Profiles/AvatarProfilesModule.cs
@@ -93,17 +93,24 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Profiles
93 public void RequestAvatarProperty(IClientAPI remoteClient, LLUUID avatarID) 93 public void RequestAvatarProperty(IClientAPI remoteClient, LLUUID avatarID)
94 { 94 {
95 // FIXME: finish adding fields such as url, masking, etc. 95 // FIXME: finish adding fields such as url, masking, etc.
96 LLUUID partner = new LLUUID("11111111-1111-0000-0000-000100bba000");
97 UserProfileData profile = m_scene.CommsManager.UserService.GetUserProfile(avatarID); 96 UserProfileData profile = m_scene.CommsManager.UserService.GetUserProfile(avatarID);
98 if (null != profile) 97 if (null != profile)
99 { 98 {
100 Byte[] charterMember = new Byte[1]; 99 Byte[] charterMember;
101 charterMember[0] = (Byte)((profile.UserFlags & 0xf00) >> 8); 100 if(profile.CustomType == "")
101 {
102 charterMember = new Byte[1];
103 charterMember[0] = (Byte)((profile.UserFlags & 0xf00) >> 8);
104 }
105 else
106 {
107 charterMember = Helpers.StringToField(profile.CustomType);
108 }
102 109
103 remoteClient.SendAvatarProperties(profile.ID, profile.AboutText, 110 remoteClient.SendAvatarProperties(profile.ID, profile.AboutText,
104 Util.ToDateTime(profile.Created).ToString(), 111 Util.ToDateTime(profile.Created).ToString(),
105 charterMember, profile.FirstLifeAboutText, (uint)(profile.UserFlags & 0xff), 112 charterMember, profile.FirstLifeAboutText, (uint)(profile.UserFlags & 0xff),
106 profile.FirstLifeImage, profile.Image, String.Empty, partner); 113 profile.FirstLifeImage, profile.Image, String.Empty, profile.Partner);
107 } 114 }
108 else 115 else
109 { 116 {