From 3fe9588b1c1c4fb58f8ba8e9c27244fc2fc1c103 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 30 Oct 2019 15:14:17 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- app/services/groups/group_links/create_service.rb | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 app/services/groups/group_links/create_service.rb (limited to 'app/services/groups') diff --git a/app/services/groups/group_links/create_service.rb b/app/services/groups/group_links/create_service.rb new file mode 100644 index 00000000000..2ce53fcfe4a --- /dev/null +++ b/app/services/groups/group_links/create_service.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Groups + module GroupLinks + class CreateService < BaseService + def execute(shared_group) + unless group && shared_group && + can?(current_user, :admin_group, shared_group) && + can?(current_user, :read_group, group) + return error('Not Found', 404) + end + + link = GroupGroupLink.new( + shared_group: shared_group, + shared_with_group: group, + group_access: params[:shared_group_access], + expires_at: params[:expires_at] + ) + + if link.save + group.refresh_members_authorized_projects + success(link: link) + else + error(link.errors.full_messages.to_sentence, 409) + end + end + end + end +end -- cgit v1.2.3