diff options
-rw-r--r-- | app/models/user.rb | 7 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 22 |
2 files changed, 27 insertions, 2 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 44abab4ba..be27e8f95 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -23,7 +23,7 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: user.rb,v 1.85 2009-03-18 01:55:23 francis Exp $ +# $Id: user.rb,v 1.86 2009-04-06 09:30:26 louise Exp $ require 'digest/sha1' @@ -214,6 +214,11 @@ class User < ActiveRecord::Base def requires_admin_power? self.admin_level == 'super' end + + def self.requires_admin_power?(user) + !user.nil? && user.requires_admin_power? + end + # Does the user get "(admin)" links on each page on the main site? def admin_page_links? self.admin_level == 'super' diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index be56faf39..5b7b08a7d 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -103,4 +103,24 @@ describe User, "when checking abilities" do end - +describe User, 'when asked if a user has the ability to edit "requires admin" requests' do + + before do + @mock_user = mock_model(User) + end + + it 'should return false if no user is passed' do + User.requires_admin_power?(nil).should be_false + end + + it 'should return true if the user has "requires admin" power' do + @mock_user.stub!(:requires_admin_power?).and_return true + User.requires_admin_power?(@mock_user).should be_true + end + + it 'should return false if the user does not have "requires admin" power' do + @mock_user.stub!(:requires_admin_power?).and_return false + User.requires_admin_power?(@mock_user).should be_false + end + +end |