diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 7d1b99d33d89042e3a3abb35ce745433a30788b3..0bcd4a59d179199507f1c51e909424297f0fad04 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -91,7 +91,7 @@ class ApplicationController < ActionController::Base
   end
 
   def redirect_unless_moderator
-    return if current_user.moderator? || current_user.admin?
+    return if current_user.moderator?
     redirect_to stream_url, notice: "you need to be an admin or moderator to do that"
   end
 
diff --git a/app/models/role.rb b/app/models/role.rb
index d9f60e8677da074cba43de79c68b0501f3ecde4d..cbe5644ef1d7f4f743b4beb958fb9ea3793d2f1e 100644
--- a/app/models/role.rb
+++ b/app/models/role.rb
@@ -19,7 +19,7 @@ class Role < ActiveRecord::Base
   end
 
   def self.moderator?(person)
-    exists?(person_id: person.id, name: "moderator")
+    moderators.exists?(person_id: person.id)
   end
 
   def self.add_moderator(person)
diff --git a/spec/models/role_spec.rb b/spec/models/role_spec.rb
index 06225ab5db8dbb11e6129e24b7ff414cd2600d3d..e0f21f7bb01a77d86bb2dc1880e337ba90868ef9 100644
--- a/spec/models/role_spec.rb
+++ b/spec/models/role_spec.rb
@@ -6,7 +6,7 @@ describe Role do
   describe "validations" do
     it { should validate_presence_of(:person) }
     it { should validate_uniqueness_of(:name).scoped_to(:person_id) }
-    it { should validate_inclusion_of(:name).in_array(%w(admin spotlight)) }
+    it { should validate_inclusion_of(:name).in_array(%w(admin spotlight moderator)) }
   end
 
   describe "associations" do
@@ -15,6 +15,7 @@ describe Role do
 
   describe "scopes" do
     let!(:admin_role) { person.roles.create(name: "admin") }
+    let!(:moderator_role) { person.roles.create(name: "moderator") }
     let!(:spotlight_role) { person.roles.create(name: "spotlight") }
 
     describe ".admins" do
@@ -22,6 +23,20 @@ describe Role do
         expect(Role.admins).to match_array([admin_role])
       end
     end
+
+    describe ".moderators" do
+      it "should include admins" do
+        expect(Role.moderators).to include(admin_role)
+      end
+
+      it "should include moderators" do
+        expect(Role.moderators).to include(moderator_role)
+      end
+
+      it "should not include normal users" do
+        expect(Role.moderators).to_not include(person)
+      end
+    end
   end
 
   describe ".is_admin?" do