Skip to content

Commit

Permalink
reordered logic to check password before existing user
Browse files Browse the repository at this point in the history
  • Loading branch information
sethwebster committed Dec 17, 2011
1 parent 8e2c967 commit bd38f30
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
2 changes: 1 addition & 1 deletion JabbR/Commands/CommandManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ private void HandleNick(string[] parts)
{
if (String.IsNullOrEmpty(password))
{
ChatService.ThrowUserExists(userName);
ChatService.ThrowPasswordIsRequired();
}
else
{
Expand Down
15 changes: 10 additions & 5 deletions JabbR/Services/ChatService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ public ChatUser AddUser(string userName, string clientId, string password)
throw new InvalidOperationException(String.Format("'{0}' is not a valid user name.", userName));
}

if (String.IsNullOrEmpty(password))
{
ThrowPasswordIsRequired();
}

EnsureUserNameIsAvailable(userName);

var user = new ChatUser
Expand All @@ -35,11 +40,6 @@ public ChatUser AddUser(string userName, string clientId, string password)
LastActivity = DateTime.UtcNow
};

if (String.IsNullOrEmpty(password))
{
throw new InvalidOperationException("A password is required.");
}

ValidatePassword(password);
user.HashedPassword = password.ToSha256(user.Salt);

Expand Down Expand Up @@ -331,6 +331,11 @@ internal static void ThrowUserExists(string userName)
throw new InvalidOperationException(String.Format("Username {0} already taken, please pick a new one using '/nick nickname'.", userName));
}

internal static void ThrowPasswordIsRequired()
{
throw new InvalidOperationException("A password is required.");
}

internal static bool IsUserInRoom(ChatRoom room, ChatUser user)
{
return room.Users.Any(r => r.Name.Equals(user.Name, StringComparison.OrdinalIgnoreCase));
Expand Down

0 comments on commit bd38f30

Please sign in to comment.