parent
3a3c881735
commit
bc75371b7a
5 changed files with 27 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue