From 2b6c36ff4a6773706956f2b6dcf40c31a3c11462 Mon Sep 17 00:00:00 2001 From: Christian Mehlmauer Date: Thu, 6 Dec 2012 20:58:40 +0100 Subject: [PATCH] Fixing empty usernames --- lib/wpscan/wp_user.rb | 46 +++++++++++++++++--- spec/lib/wpscan/modules/wp_usernames_spec.rb | 14 ++++++ 2 files changed, 53 insertions(+), 7 deletions(-) diff --git a/lib/wpscan/wp_user.rb b/lib/wpscan/wp_user.rb index 7894d5f7..1b592235 100644 --- a/lib/wpscan/wp_user.rb +++ b/lib/wpscan/wp_user.rb @@ -17,23 +17,55 @@ #++ class WpUser - attr_accessor :name, :id, :nickname + + def name + if @name.nil? or @name.to_s.strip.empty? + return "empty" + end + @name + end + + def name=(new_name) + @name = new_name + end + + def id + if @id.nil? or @id.to_s.strip.empty? + return "empty" + end + @id + end + + def id=(new_id) + @id = new_id + end + + def nickname + if @nickname.nil? or @nickname.to_s.strip.empty? + return "empty" + end + @nickname + end + + def nickname=(new_nickname) + @nickname = new_nickname + end def initialize(name, id, nickname) - @name = name ? name : "empty" - @id = id ? id : "empty" - @nickname = nickname ? nickname : "empty" + self.name = name + self.id = id + self.nickname = nickname end def <=>(item) - item.name <=> @name + item.name <=> self.name end def ===(item) - item.name === @name and item.id === @id and item.nickname === @nickname + item.name === self.name and item.id === self.id and item.nickname === self.nickname end def eql?(item) - item.name === @name and item.id === @id and item.nickname === @nickname + item.name === self.name and item.id === self.id and item.nickname === self.nickname end end \ No newline at end of file diff --git a/spec/lib/wpscan/modules/wp_usernames_spec.rb b/spec/lib/wpscan/modules/wp_usernames_spec.rb index 5cded7e6..3ede2927 100644 --- a/spec/lib/wpscan/modules/wp_usernames_spec.rb +++ b/spec/lib/wpscan/modules/wp_usernames_spec.rb @@ -237,4 +237,18 @@ shared_examples_for "WpUsernames" do @expected = [WpUser.new(nil, nil, ""), WpUser.new(nil, nil, "")] end end + + # Issue 66 + describe "#remove_junk_from_nickname" do + it "should contain the string empty" do + input = [WpUser.new("admin", 1, "admin | Wordpress 3.4.2"), WpUser.new("", 2, "Wordpress 3.4.2")] + result = @module.remove_junk_from_nickname(input) + result[0].nickname.should === "admin | " + result[0].name.should === "admin" + result[0].id.should === 1 + result[1].nickname.should === "empty" + result[1].name.should === "empty" + result[1].id.should === 2 + end + end end