parent
3a3c881735
commit
bc75371b7a
5 changed files with 27 additions and 2 deletions
|
|
@ -92,6 +92,13 @@ class ApplicationController < ActionController::Base
|
||||||
end
|
end
|
||||||
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
|
def set_grammatical_gender
|
||||||
if (user_signed_in? && I18n.inflector.inflected_locale?)
|
if (user_signed_in? && I18n.inflector.inflected_locale?)
|
||||||
gender = current_user.gender.to_s.tr('!()[]"\'`*=|/\#.,-:', '').downcase
|
gender = current_user.gender.to_s.tr('!()[]"\'`*=|/\#.,-:', '').downcase
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
class ReportController < ApplicationController
|
class ReportController < ApplicationController
|
||||||
before_filter :authenticate_user!
|
before_filter :authenticate_user!
|
||||||
before_filter :redirect_unless_admin, :except => [:create]
|
before_filter :redirect_unless_moderator, :except => [:create]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@reports = Report.where(reviewed: false)
|
@reports = Report.where(reviewed: false)
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,10 @@ class Role < ActiveRecord::Base
|
||||||
find_or_create_by(person_id: person.id, name: "admin")
|
find_or_create_by(person_id: person.id, name: "admin")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.moderator?(person)
|
||||||
|
exists?(person_id: person.id, name: "moderator")
|
||||||
|
end
|
||||||
|
|
||||||
def self.add_moderator(person)
|
def self.add_moderator(person)
|
||||||
find_or_create_by(person_id: person.id, name: "moderator")
|
find_or_create_by(person_id: person.id, name: "moderator")
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -481,6 +481,10 @@ class User < ActiveRecord::Base
|
||||||
Role.is_admin?(self.person)
|
Role.is_admin?(self.person)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def moderator?
|
||||||
|
Role.moderator?(self.person)
|
||||||
|
end
|
||||||
|
|
||||||
def podmin_account?
|
def podmin_account?
|
||||||
username == AppConfig.admins.account
|
username == AppConfig.admins.account
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ describe ReportController, :type => :controller do
|
||||||
expect(response).to redirect_to stream_path
|
expect(response).to redirect_to stream_path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'admin signed in' do
|
context 'admin signed in' do
|
||||||
before do
|
before do
|
||||||
Role.add_admin(alice.person)
|
Role.add_admin(alice.person)
|
||||||
|
|
@ -28,6 +28,16 @@ describe ReportController, :type => :controller do
|
||||||
expect(response).to render_template('index')
|
expect(response).to render_template('index')
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
||||||
describe '#create' do
|
describe '#create' do
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue