summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-12-12 08:58:13 +0000
committerSean McGivern <sean@mcgivern.me.uk>2016-12-12 08:58:13 +0000
commit87f3a66c32f8cab6c814f81ec9dfea69f64d79cc (patch)
tree3afd55ea01c39ab1341bf01dbadfe520618a4b6c /app
parent221a461c1e917e816e30c213d48ad0ff87170527 (diff)
parentfde754e2676e40dcf2600190983ef54030c5d5a5 (diff)
downloadgitlab-ce-87f3a66c32f8cab6c814f81ec9dfea69f64d79cc.tar.gz
Merge branch 'features/api-snippets' into 'master'
Adding support for personal snippet endpoint on the API Closes #22042 See merge request !6373
Diffstat (limited to 'app')
-rw-r--r--app/finders/snippets_finder.rb5
-rw-r--r--app/helpers/gitlab_routing_helper.rb5
-rw-r--r--app/policies/personal_snippet_policy.rb5
3 files changed, 14 insertions, 1 deletions
diff --git a/app/finders/snippets_finder.rb b/app/finders/snippets_finder.rb
index 00ff1611039..0586a923a74 100644
--- a/app/finders/snippets_finder.rb
+++ b/app/finders/snippets_finder.rb
@@ -1,12 +1,15 @@
class SnippetsFinder
def execute(current_user, params = {})
filter = params[:filter]
+ user = params.fetch(:user, current_user)
case filter
when :all then
snippets(current_user).fresh
+ when :public then
+ Snippet.are_public.fresh
when :by_user then
- by_user(current_user, params[:user], params[:scope])
+ by_user(current_user, user, params[:scope])
when :by_project
by_project(current_user, params[:project])
end
diff --git a/app/helpers/gitlab_routing_helper.rb b/app/helpers/gitlab_routing_helper.rb
index af9087d8326..99db73c9ee0 100644
--- a/app/helpers/gitlab_routing_helper.rb
+++ b/app/helpers/gitlab_routing_helper.rb
@@ -159,6 +159,11 @@ module GitlabRoutingHelper
resend_invite_namespace_project_project_member_path(project_member.source.namespace, project_member.source, project_member)
end
+ # Snippets
+ def personal_snippet_url(snippet, *args)
+ snippet_url(snippet)
+ end
+
# Groups
## Members
diff --git a/app/policies/personal_snippet_policy.rb b/app/policies/personal_snippet_policy.rb
index 46c5aa1a5be..d3913986cd8 100644
--- a/app/policies/personal_snippet_policy.rb
+++ b/app/policies/personal_snippet_policy.rb
@@ -6,9 +6,14 @@ class PersonalSnippetPolicy < BasePolicy
if @subject.author == @user
can! :read_personal_snippet
can! :update_personal_snippet
+ can! :destroy_personal_snippet
can! :admin_personal_snippet
end
+ unless @user.external?
+ can! :create_personal_snippet
+ end
+
if @subject.internal? && !@user.external?
can! :read_personal_snippet
end