report controller renders index for the moderator

(#5324)
This commit is contained in:
realtin 2015-08-20 17:14:59 +02:00 committed by Jonne Haß
parent 3a3c881735
commit bc75371b7a
5 changed files with 27 additions and 2 deletions

View file

@ -92,6 +92,13 @@ class ApplicationController < ActionController::Base
end
end
def redirect_unless_moderator
unless current_user.moderator? || current_user.admin?
redirect_to stream_url, :notice => 'you need to be an admin or moderator to do that'
return
end
end
def set_grammatical_gender
if (user_signed_in? && I18n.inflector.inflected_locale?)
gender = current_user.gender.to_s.tr('!()[]"\'`*=|/\#.,-:', '').downcase

View file

@ -4,7 +4,7 @@
class ReportController < ApplicationController
before_filter :authenticate_user!
before_filter :redirect_unless_admin, :except => [:create]
before_filter :redirect_unless_moderator, :except => [:create]
def index
@reports = Report.where(reviewed: false)

View file

@ -17,6 +17,10 @@ class Role < ActiveRecord::Base
find_or_create_by(person_id: person.id, name: "admin")
end
def self.moderator?(person)
exists?(person_id: person.id, name: "moderator")
end
def self.add_moderator(person)
find_or_create_by(person_id: person.id, name: "moderator")
end

View file

@ -481,6 +481,10 @@ class User < ActiveRecord::Base
Role.is_admin?(self.person)
end
def moderator?
Role.moderator?(self.person)
end
def podmin_account?
username == AppConfig.admins.account
end

View file

@ -18,7 +18,7 @@ describe ReportController, :type => :controller do
expect(response).to redirect_to stream_path
end
end
context 'admin signed in' do
before do
Role.add_admin(alice.person)
@ -28,6 +28,16 @@ describe ReportController, :type => :controller do
expect(response).to render_template('index')
end
end
context 'moderator signed in' do
before do
Role.add_moderator(alice.person)
end
it 'succeeds and renders index' do
get :index
expect(response).to render_template('index')
end
end
end
describe '#create' do