From 217ca5b5b62aba4a2b2831d7bcfe5ec10c744868 Mon Sep 17 00:00:00 2001 From: Daniel Beardsley Date: Fri, 8 Mar 2013 02:22:16 -0700 Subject: [PATCH] Github Login: allow setting to blank --- app/models/user.rb | 7 +++++++ spec/controllers/users_controller_spec.rb | 5 +++++ spec/models/user_spec.rb | 9 +++++++++ 3 files changed, 21 insertions(+), 0 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 39abe6d..b93bd0c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -52,6 +52,13 @@ class User github_account? && Errbit::Config.github_access_scope.include?('repo') end + def github_login=(login) + if login.is_a?(String) && login.strip.empty? + login = nil + end + self[:github_login] = login + end + protected def destroy_watchers diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index 2297b69..e73616f 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -79,6 +79,11 @@ describe UsersController do @user.reload.time_zone.should == "Warsaw" end + it "should be able to not set github_login option" do + put :update, :id => @user.to_param, :user => {:github_login => " "} + @user.reload.github_login.should == nil + end + it "should be able to set github_login option" do put :update, :id => @user.to_param, :user => {:github_login => "awesome_name"} @user.reload.github_login.should == "awesome_name" diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 5d4dcc5..f1e9fb1 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -29,6 +29,15 @@ describe User do user2.should_not be_valid user2.errors[:github_login].should include("is already taken") end + + it 'allows blank / null github_login' do + user1 = Fabricate(:user, :github_login => ' ') + user1.should be_valid + + user2 = Fabricate.build(:user, :github_login => ' ') + user2.save + user2.should be_valid + end end context 'Watchers' do -- libgit2 0.21.2