Implements User.administrator? & User.moderator?
This commit is contained in:
@@ -19,4 +19,12 @@ class User < ActiveRecord::Base
|
||||
voted = votes.where("votable_type = ? AND votable_id IN (?)", "Debate", debates_ids)
|
||||
voted.each_with_object({}){ |v,_| _[v.votable_id] = v.vote_flag }
|
||||
end
|
||||
|
||||
def administrator?
|
||||
@is_administrator ||= Administrator.where(user_id: id).exists?
|
||||
end
|
||||
|
||||
def moderator?
|
||||
@is_moderator ||= Moderator.where(user_id: id).exists?
|
||||
end
|
||||
end
|
||||
|
||||
@@ -31,4 +31,12 @@ FactoryGirl.define do
|
||||
debate
|
||||
end
|
||||
|
||||
factory :administrator do
|
||||
user
|
||||
end
|
||||
|
||||
factory :moderator do
|
||||
user
|
||||
end
|
||||
|
||||
end
|
||||
@@ -7,13 +7,13 @@ describe User do
|
||||
@user = create(:user)
|
||||
end
|
||||
|
||||
it "should return {} if no debate" do
|
||||
it "returns {} if no debate" do
|
||||
expect(@user.votes_on_debates()).to eq({})
|
||||
expect(@user.votes_on_debates([])).to eq({})
|
||||
expect(@user.votes_on_debates([nil, nil])).to eq({})
|
||||
end
|
||||
|
||||
it "should return a hash of debates ids and votes" do
|
||||
it "returns a hash of debates ids and votes" do
|
||||
debate1 = create(:debate)
|
||||
debate2 = create(:debate)
|
||||
debate3 = create(:debate)
|
||||
@@ -73,4 +73,28 @@ describe User do
|
||||
end
|
||||
end
|
||||
|
||||
describe "administrator?" do
|
||||
it "is false when the user is not an admin" do
|
||||
expect(subject.administrator?).to be false
|
||||
end
|
||||
|
||||
it "is true when the user is an admin" do
|
||||
subject.save
|
||||
create(:administrator, user: subject)
|
||||
expect(subject.administrator?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe "moderator?" do
|
||||
it "is false when the user is not an admin" do
|
||||
expect(subject.moderator?).to be false
|
||||
end
|
||||
|
||||
it "is true when the user is an admin" do
|
||||
subject.save
|
||||
create(:moderator, user: subject)
|
||||
expect(subject.moderator?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user