X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/ffa65d4d725fc376037cd8390f30df45f85b6d8e..0888f43d7b5a5e23874ff1a291049b90481d1273:/app/models/ability.rb diff --git a/app/models/ability.rb b/app/models/ability.rb index c712e3e82..f55f19e4e 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -1,12 +1,32 @@ +# frozen_string_literal: true + class Ability include CanCan::Ability def initialize(user) - can :index, :site + can [:index, :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 [:read, :read_one, :update, :update_one, :delete_one], UserPreference + + 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)