before_action :authorize_web
before_action :set_locale
- before_action :require_user
- before_action :check_permission
+
+ authorize_resource
def create
@issue = Issue.find(params[:issue_id])
params.require(:issue_comment).permit(:body)
end
- def check_permission
- unless current_user.administrator? || current_user.moderator?
+ def deny_access(_exception)
+ if current_user
flash[:error] = t("application.require_moderator_or_admin.not_a_moderator_or_admin")
redirect_to root_path
+ else
+ super
end
end
before_action :authorize_web
before_action :set_locale
- before_action :require_user
- before_action :check_permission
+
+ authorize_resource
+
before_action :find_issue, :only => [:show, :resolve, :reopen, :ignore]
def index
@issue = Issue.find(params[:id])
end
- def check_permission
- unless current_user.administrator? || current_user.moderator?
+ def deny_access(_exception)
+ if current_user
flash[:error] = t("application.require_moderator_or_admin.not_a_moderator_or_admin")
redirect_to root_path
+ else
+ super
end
end
end
def initialize(user)
can :index, :site
can [:permalink, :edit, :help, :fixthemap, :offline, :export, :about, :preview, :copyright, :key, :id], :site
-
can [:index, :rss, :show, :comments], DiaryEntry
-
can [:search, :search_latlon, :search_ca_postcode, :search_osm_nominatim,
:search_geonames, :search_osm_nominatim_reverse, :search_geonames_reverse], :geocoder
if user
can :welcome, :site
-
can [:create, :edit, :comment, :subscribe, :unsubscribe], DiaryEntry
+ can [:new, :create], Report
- can [:hide, :hidecomment], [DiaryEntry, DiaryComment] if user.administrator?
+ if user.moderator?
+ can [:index, :show, :resolve, :ignore, :reopen], Issue
+ can :create, IssueComment
+ end
+
+ if user.administrator?
+ can [:hide, :hidecomment], [DiaryEntry, DiaryComment]
+ can [:index, :show, :resolve, :ignore, :reopen], Issue
+ can :create, IssueComment
+ end
end
+
# Define abilities for the passed in user here. For example:
#
# user ||= User.new # guest user (not logged in)