aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-02-18 15:50:18 +0000
committerJustin Clarke Casey2008-02-18 15:50:18 +0000
commit500d259c252f8c4f75c6f37e1067d57811426ddd (patch)
tree778ae131f7fdb01678f82cf8b94a25992e722390 /OpenSim/Framework
parenta new attempt at converting to the right types (diff)
downloadopensim-SC-500d259c252f8c4f75c6f37e1067d57811426ddd.zip
opensim-SC-500d259c252f8c4f75c6f37e1067d57811426ddd.tar.gz
opensim-SC-500d259c252f8c4f75c6f37e1067d57811426ddd.tar.bz2
opensim-SC-500d259c252f8c4f75c6f37e1067d57811426ddd.tar.xz
* Do not allow a user to be created if one with the same name already exists
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r--OpenSim/Framework/Communications/CommunicationsManager.cs20
-rw-r--r--OpenSim/Framework/Communications/UserManagerBase.cs45
-rw-r--r--OpenSim/Framework/Console/ConsoleBase.cs8
-rw-r--r--OpenSim/Framework/IUserService.cs16
4 files changed, 55 insertions, 34 deletions
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs
index eb820c1..4ad808a 100644
--- a/OpenSim/Framework/Communications/CommunicationsManager.cs
+++ b/OpenSim/Framework/Communications/CommunicationsManager.cs
@@ -131,11 +131,27 @@ namespace OpenSim.Framework.Communications
131 regY = Convert.ToUInt32(cmmdParams[5]); 131 regY = Convert.ToUInt32(cmmdParams[5]);
132 } 132 }
133 133
134 AddUser(firstName, lastName, password, regX, regY); 134 if (null == m_userService.GetUserProfile(firstName, lastName))
135 {
136 AddUser(firstName, lastName, password, regX, regY);
137 }
138 else
139 {
140 m_log.ErrorFormat("[USERS]: A user with the name {0} {1} already exists!", firstName, lastName);
141 }
135 break; 142 break;
136 } 143 }
137 } 144 }
138 145
146 /// <summary>
147 /// Persistently adds a user to OpenSim.
148 /// </summary>
149 /// <param name="firstName"></param>
150 /// <param name="lastName"></param>
151 /// <param name="password"></param>
152 /// <param name="regX"></param>
153 /// <param name="regY"></param>
154 /// <returns>The UUID of the added user. Returns null if the add was unsuccessful</returns>
139 public LLUUID AddUser(string firstName, string lastName, string password, uint regX, uint regY) 155 public LLUUID AddUser(string firstName, string lastName, string password, uint regX, uint regY)
140 { 156 {
141 string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty); 157 string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty);
@@ -149,7 +165,7 @@ namespace OpenSim.Framework.Communications
149 else 165 else
150 { 166 {
151 m_inventoryService.CreateNewUserInventory(userProf.UUID); 167 m_inventoryService.CreateNewUserInventory(userProf.UUID);
152 System.Console.WriteLine("Created new inventory set for " + firstName + " " + lastName); 168 System.Console.WriteLine("[USERS]: Created new inventory set for " + firstName + " " + lastName);
153 return userProf.UUID; 169 return userProf.UUID;
154 } 170 }
155 } 171 }
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs
index dbf9276..733d62b 100644
--- a/OpenSim/Framework/Communications/UserManagerBase.cs
+++ b/OpenSim/Framework/Communications/UserManagerBase.cs
@@ -86,11 +86,24 @@ namespace OpenSim.Framework.UserManagement
86 86
87 #region Get UserProfile 87 #region Get UserProfile
88 88
89 /// <summary> 89 // see IUserService
90 /// Loads a user profile from a database by UUID 90 public UserProfileData GetUserProfile(string fname, string lname)
91 /// </summary> 91 {
92 /// <param name="uuid">The target UUID</param> 92 foreach (KeyValuePair<string, IUserData> plugin in _plugins)
93 /// <returns>A user profile. Returns null if no user profile is found.</returns> 93 {
94 UserProfileData profile = plugin.Value.GetUserByName(fname, lname);
95
96 if (profile != null)
97 {
98 profile.currentAgent = getUserAgent(profile.UUID);
99 return profile;
100 }
101 }
102
103 return null;
104 }
105
106 // see IUserService
94 public UserProfileData GetUserProfile(LLUUID uuid) 107 public UserProfileData GetUserProfile(LLUUID uuid)
95 { 108 {
96 foreach (KeyValuePair<string, IUserData> plugin in _plugins) 109 foreach (KeyValuePair<string, IUserData> plugin in _plugins)
@@ -126,28 +139,6 @@ namespace OpenSim.Framework.UserManagement
126 } 139 }
127 140
128 /// <summary> 141 /// <summary>
129 /// Loads a user profile by name
130 /// </summary>
131 /// <param name="fname">First name</param>
132 /// <param name="lname">Last name</param>
133 /// <returns>A user profile. Returns null if no profile is found</returns>
134 public UserProfileData GetUserProfile(string fname, string lname)
135 {
136 foreach (KeyValuePair<string, IUserData> plugin in _plugins)
137 {
138 UserProfileData profile = plugin.Value.GetUserByName(fname, lname);
139
140 if (profile != null)
141 {
142 profile.currentAgent = getUserAgent(profile.UUID);
143 return profile;
144 }
145 }
146
147 return null;
148 }
149
150 /// <summary>
151 /// Set's user profile from object 142 /// Set's user profile from object
152 /// </summary> 143 /// </summary>
153 /// <param name="fname">First name</param> 144 /// <param name="fname">First name</param>
diff --git a/OpenSim/Framework/Console/ConsoleBase.cs b/OpenSim/Framework/Console/ConsoleBase.cs
index 829d6c7..63711f3 100644
--- a/OpenSim/Framework/Console/ConsoleBase.cs
+++ b/OpenSim/Framework/Console/ConsoleBase.cs
@@ -295,15 +295,15 @@ namespace OpenSim.Framework.Console
295 } 295 }
296 296
297 // Displays a prompt and waits for the user to enter a string, then returns that string 297 // Displays a prompt and waits for the user to enter a string, then returns that string
298 // Done with no echo and suitable for passwords 298 // (Done with no echo and suitable for passwords - currently disabled)
299 public string PasswdPrompt(string prompt) 299 public string PasswdPrompt(string prompt)
300 { 300 {
301 // FIXME: Needs to be better abstracted 301 // FIXME: Needs to be better abstracted
302 System.Console.WriteLine(String.Format("{0}: ", prompt)); 302 System.Console.WriteLine(String.Format("{0}: ", prompt));
303 ConsoleColor oldfg = System.Console.ForegroundColor; 303 //ConsoleColor oldfg = System.Console.ForegroundColor;
304 System.Console.ForegroundColor = System.Console.BackgroundColor; 304 //System.Console.ForegroundColor = System.Console.BackgroundColor;
305 string temp = System.Console.ReadLine(); 305 string temp = System.Console.ReadLine();
306 System.Console.ForegroundColor = oldfg; 306 //System.Console.ForegroundColor = oldfg;
307 return temp; 307 return temp;
308 } 308 }
309 309
diff --git a/OpenSim/Framework/IUserService.cs b/OpenSim/Framework/IUserService.cs
index f1f3c81..3b84486 100644
--- a/OpenSim/Framework/IUserService.cs
+++ b/OpenSim/Framework/IUserService.cs
@@ -32,9 +32,23 @@ namespace OpenSim.Framework
32{ 32{
33 public interface IUserService 33 public interface IUserService
34 { 34 {
35 /// <summary>
36 /// Loads a user profile by name
37 /// </summary>
38 /// <param name="fname">First name</param>
39 /// <param name="lname">Last name</param>
40 /// <returns>A user profile. Returns null if no profile is found</returns>
35 UserProfileData GetUserProfile(string firstName, string lastName); 41 UserProfileData GetUserProfile(string firstName, string lastName);
42
36 //UserProfileData GetUserProfile(string name); 43 //UserProfileData GetUserProfile(string name);
44
45 /// <summary>
46 /// Loads a user profile from a database by UUID
47 /// </summary>
48 /// <param name="uuid">The target UUID</param>
49 /// <returns>A user profile. Returns null if no user profile is found.</returns>
37 UserProfileData GetUserProfile(LLUUID userId); 50 UserProfileData GetUserProfile(LLUUID userId);
51
38 void clearUserAgent(LLUUID avatarID); 52 void clearUserAgent(LLUUID avatarID);
39 List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(LLUUID QueryID, string Query); 53 List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(LLUUID QueryID, string Query);
40 54
@@ -88,4 +102,4 @@ namespace OpenSim.Framework
88 /// <param name="friendlistowner">The agent that we're retreiving the friends Data.</param> 102 /// <param name="friendlistowner">The agent that we're retreiving the friends Data.</param>
89 List<FriendListItem> GetUserFriendList(LLUUID friendlistowner); 103 List<FriendListItem> GetUserFriendList(LLUUID friendlistowner);
90 } 104 }
91} \ No newline at end of file 105}