User Contribution Mapping - Display warning instead of allowing to download empty CSV
Problem
When a user goes to a group where all of the users have been reassigned, they can still download an empty CSV.
Proposal
Instead of allowing users to download an empty CSV file, let's improve the user experience by showing a flash message that says something like "There are no placeholders to reassign".
From !175573 (comment 2289573049) - Some very rough code:
diff --git a/app/services/import/source_users/generate_csv_service.rb b/app/services/import/source_users/generate_csv_service.rb
index 115600200af3..950beca54c12 100644
--- a/app/services/import/source_users/generate_csv_service.rb
+++ b/app/services/import/source_users/generate_csv_service.rb
@@ -27,6 +27,7 @@ def execute
# We use :owner_access here because it's shared between GroupPolicy and
# NamespacePolicy.
return error_invalid_permissions unless current_user.can?(:owner_access, namespace)
+ return error_no_source_users if import_source_users.empty?
ServiceResponse.success(payload: csv_data)
end
@@ -56,16 +57,26 @@ def csv_data
end
def import_source_users
+ return [] # for demonstration purposes
+
statuses = Import::SourceUser::STATUSES.slice(*Import::SourceUser::REASSIGNABLE_STATUSES).values
namespace.import_source_users.by_statuses(statuses)
end
+
def error_invalid_permissions
ServiceResponse.error(
message: s_('Import|You do not have permission to view import source users for this namespace'),
reason: :forbidden
)
end
+
+ def error_no_source_users
+ ServiceResponse.error(
+ message: 'There are no source users, but written better',
+ reason: :no_source_users
+ )
+ end
end
end
end
