]> git.openstreetmap.org Git - rails.git/blobdiff - app/abilities/ability.rb
Use CanCanCan for changesets controller
[rails.git] / app / abilities / ability.rb
index d0e0b65d7a9ee6cb36646dfcea54cb166d247081..6dbeb0b64fe261e15ac6a82a8341049ebe80039d 100644 (file)
@@ -4,6 +4,7 @@ class Ability
   include CanCan::Ability
 
   def initialize(user)
+    can [:index, :feed, :read, :download, :query], Changeset
     can :index, ChangesetComment
     can [:index, :permalink, :edit, :help, :fixthemap, :offline, :export, :about, :preview, :copyright, :key, :id], :site
     can [:index, :rss, :show, :comments], DiaryEntry
@@ -16,13 +17,17 @@ class Ability
 
     if user
       can :welcome, :site
-      can :create, ChangesetComment
       can [:create, :edit, :comment, :subscribe, :unsubscribe], DiaryEntry
       can [:close, :reopen], Note
       can [:new, :create], Report
       can [:account, :go_public, :make_friend, :remove_friend, :api_details, :api_gpx_files], User
       can [:read, :read_one, :update, :update_one, :delete_one], UserPreference
 
+      if user.terms_agreed? || !REQUIRE_TERMS_AGREED
+        can [:create, :update, :upload, :close, :subscribe, :unsubscribe, :expand_bbox], Changeset
+        can :create, ChangesetComment
+      end
+
       if user.moderator?
         can [:destroy, :restore], ChangesetComment
         can [:index, :show, :resolve, :ignore, :reopen], Issue