Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-05 21:08:19 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-05 21:08:19 +0300
commita8de96bff51846e160b76506dc0ca0fe6f767f64 (patch)
tree1036f1ca75aba492eaaa3439c84a3109b4684896 /app/services/groups/import_export
parentafe2b984524ae4b0c8a0636db7ec5b2c452f0734 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/groups/import_export')
-rw-r--r--app/services/groups/import_export/export_service.rb14
-rw-r--r--app/services/groups/import_export/import_service.rb43
2 files changed, 42 insertions, 15 deletions
diff --git a/app/services/groups/import_export/export_service.rb b/app/services/groups/import_export/export_service.rb
index aa484e7203c..0bf54844430 100644
--- a/app/services/groups/import_export/export_service.rb
+++ b/app/services/groups/import_export/export_service.rb
@@ -11,11 +11,7 @@ module Groups
end
def execute
- unless @current_user.can?(:admin_group, @group)
- raise ::Gitlab::ImportExport::Error.new(
- "User with ID: %s does not have permission to Group %s with ID: %s." %
- [@current_user.id, @group.name, @group.id])
- end
+ validate_user_permissions
save!
ensure
@@ -26,6 +22,14 @@ module Groups
attr_accessor :shared
+ def validate_user_permissions
+ unless @current_user.can?(:admin_group, @group)
+ @shared.error(::Gitlab::ImportExport::Error.permission_error(@current_user, @group))
+
+ notify_error!
+ end
+ end
+
def save!
if savers.all?(&:save)
notify_success
diff --git a/app/services/groups/import_export/import_service.rb b/app/services/groups/import_export/import_service.rb
index 57d2d9855d1..548a4a98dc1 100644
--- a/app/services/groups/import_export/import_service.rb
+++ b/app/services/groups/import_export/import_service.rb
@@ -12,15 +12,14 @@ module Groups
end
def execute
- validate_user_permissions
+ if valid_user_permissions? && import_file && restorer.restore
+ notify_success
- if import_file && restorer.restore
@group
else
- raise StandardError.new(@shared.errors.to_sentence)
+ notify_error!
end
- rescue => e
- raise StandardError.new(e.message)
+
ensure
remove_import_file
end
@@ -49,13 +48,37 @@ module Groups
upload.save!
end
- def validate_user_permissions
- unless current_user.can?(:admin_group, group)
- raise ::Gitlab::ImportExport::Error.new(
- "User with ID: %s does not have permission to Group %s with ID: %s." %
- [current_user.id, group.name, group.id])
+ def valid_user_permissions?
+ if current_user.can?(:admin_group, group)
+ true
+ else
+ @shared.error(::Gitlab::ImportExport::Error.permission_error(current_user, group))
+
+ false
end
end
+
+ def notify_success
+ @shared.logger.info(
+ group_id: @group.id,
+ group_name: @group.name,
+ message: 'Group Import/Export: Import succeeded'
+ )
+ end
+
+ def notify_error
+ @shared.logger.error(
+ group_id: @group.id,
+ group_name: @group.name,
+ message: "Group Import/Export: Errors occurred, see '#{Gitlab::ErrorTracking::Logger.file_name}' for details"
+ )
+ end
+
+ def notify_error!
+ notify_error
+
+ raise Gitlab::ImportExport::Error.new(@shared.errors.to_sentence)
+ end
end
end
end