928fc94c3d
Add new service classes to create and update project and personal snippets. These classes are responsible for enforcing restricted visibility settings for non-admin users.
20 lines
462 B
Ruby
20 lines
462 B
Ruby
class CreateSnippetService < BaseService
|
|
def execute
|
|
if project.nil?
|
|
snippet = PersonalSnippet.new(params)
|
|
else
|
|
snippet = project.snippets.build(params)
|
|
end
|
|
|
|
unless Gitlab::VisibilityLevel.allowed_for?(current_user,
|
|
params[:visibility_level])
|
|
deny_visibility_level(snippet)
|
|
return snippet
|
|
end
|
|
|
|
snippet.author = current_user
|
|
|
|
snippet.save
|
|
snippet
|
|
end
|
|
end
|