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 = votes.where("votable_type = ? AND votable_id IN (?)", "Debate", debates_ids)
|
||||||
voted.each_with_object({}){ |v,_| _[v.votable_id] = v.vote_flag }
|
voted.each_with_object({}){ |v,_| _[v.votable_id] = v.vote_flag }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def administrator?
|
||||||
|
@is_administrator ||= Administrator.where(user_id: id).exists?
|
||||||
|
end
|
||||||
|
|
||||||
|
def moderator?
|
||||||
|
@is_moderator ||= Moderator.where(user_id: id).exists?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -31,4 +31,12 @@ FactoryGirl.define do
|
|||||||
debate
|
debate
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
factory :administrator do
|
||||||
|
user
|
||||||
|
end
|
||||||
|
|
||||||
|
factory :moderator do
|
||||||
|
user
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ describe User do
|
|||||||
@user = create(:user)
|
@user = create(:user)
|
||||||
end
|
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([])).to eq({})
|
expect(@user.votes_on_debates([])).to eq({})
|
||||||
expect(@user.votes_on_debates([nil, nil])).to eq({})
|
expect(@user.votes_on_debates([nil, nil])).to eq({})
|
||||||
end
|
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)
|
debate1 = create(:debate)
|
||||||
debate2 = create(:debate)
|
debate2 = create(:debate)
|
||||||
debate3 = create(:debate)
|
debate3 = create(:debate)
|
||||||
@@ -73,4 +73,28 @@ describe User do
|
|||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user