summaryrefslogtreecommitdiff
path: root/app/models/snippet.rb
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2016-06-27 18:36:08 -0400
committerRobert Speicher <rspeicher@gmail.com>2016-06-27 18:39:42 -0400
commitc9a46263336dd38aef90b71995e2790be72d441d (patch)
tree137f39230ea2706707fb845cdce67d0edaa05a1c /app/models/snippet.rb
parent0fd4b9d3e2c800e728e17e919fa7369b3322c65b (diff)
parent8a197c15d453de619fbe8aaebfe9e29b82eb873c (diff)
downloadgitlab-ce-c9a46263336dd38aef90b71995e2790be72d441d.tar.gz
Merge remote-tracking branch 'dev/master'
Diffstat (limited to 'app/models/snippet.rb')
-rw-r--r--app/models/snippet.rb11
1 files changed, 10 insertions, 1 deletions
diff --git a/app/models/snippet.rb b/app/models/snippet.rb
index f8034cb5e6b..51f6ae7b25c 100644
--- a/app/models/snippet.rb
+++ b/app/models/snippet.rb
@@ -135,7 +135,16 @@ class Snippet < ActiveRecord::Base
end
def accessible_to(user)
- where('visibility_level IN (?) OR author_id = ?', [Snippet::INTERNAL, Snippet::PUBLIC], user)
+ return are_public unless user.present?
+ return all if user.admin?
+
+ where(
+ 'visibility_level IN (:visibility_levels)
+ OR author_id = :author_id
+ OR project_id IN (:project_ids)',
+ visibility_levels: [Snippet::PUBLIC, Snippet::INTERNAL],
+ author_id: user.id,
+ project_ids: user.authorized_projects.select(:id))
end
end
end