canvas-lms/lib
August Thornton ac1eddc5c8 fix eportfolio exports with long filenames
We are still seeing file names that exceed 255 characters when
it came time to processing the zip file. This was due to the fact that
the filenames get appended to for uniqueness etc., but we
were validating too far up the stack.

The approach also keeps the original section / page names up to
a point, but then truncates them if exceeding the limit, while
maintaining the extension names.

fixes FOO-4612
flag = none

test plan |
 - create a _long_ ePortfolio section name
 - create a _long_ ePortfolio page name within that section
 - both should exceed 255 characters when combined
 - click "Download the contents of this ePortfolio as a zip file"
 - the zip file should be created without error

Change-Id: Ib855a21ca1e428b7b3b3e81691200ec11b40d67d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/354739
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Hulse <michael.hulse@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
2024-08-12 22:42:09 +00:00
..
address_book bundle update rubocop 2024-05-30 16:20:52 +00:00
api Edit block or rce pages 2024-08-09 23:03:12 +00:00
app_center Remove unnecessary require statements 2023-01-04 21:38:21 +00:00
authentication_methods Consider client_id as identifier for service JWTs 2023-09-26 22:01:14 +00:00
base ignore marshal errors in CacheRegister 2024-07-26 15:33:22 +00:00
basic_lti Hide score and grade if gradebook set to manual posting 2024-06-20 21:52:58 +00:00
canvadocs Revert "Remove from canvadocs session the crocodoc_id" 2024-04-19 18:37:09 +00:00
canvas remove compact_live_events_payloads flag 2024-08-12 15:21:27 +00:00
cc QTI export/import not linking to files 2024-08-01 19:37:59 +00:00
data_fixup Datafix: Alter style rewrite params slightly 2024-08-12 22:18:49 +00:00
external_auth_observation Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
feature_flags Use AssignmentVisibilityService 2024-06-05 21:34:54 +00:00
global_lookups rubocop: Rails/Output 2024-06-12 14:58:02 +00:00
gradebook bundle update rubocop-rails 2024-05-29 16:33:01 +00:00
i18n/backend Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
latex Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
learn_platform Update unified_tool_id automatically from LearnPlatform 2024-07-31 21:34:26 +00:00
lti Introduce student_context lti 1.3 custom claim 2024-08-07 12:08:09 +00:00
messageable_user Mentions should only allow discussion visible users 2024-02-27 16:00:22 +00:00
microsoft_sync bundle update rubocop 2024-05-30 16:20:52 +00:00
migration_helpers/student_visibilities Add visibilities for learning objects 2024-04-03 18:04:35 +00:00
outcomes Add 255 char limit error when importing friendly desc 2024-02-22 20:22:20 +00:00
pandata_events correctly set ttl for pandata events auth tokens 2024-04-10 18:25:14 +00:00
rake Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
reporting Remove a lot of settings 2024-01-09 21:32:17 +00:00
schemas allow submission type LTIs to require a resource 2024-06-17 22:54:33 +00:00
sentry_extensions remove Setting.skip_cache 2023-09-27 17:08:20 +00:00
services Add analytics hub as remote module 2024-04-26 13:26:39 +00:00
sis set grading_standard when inherited on conclusion 2024-07-22 15:41:53 +00:00
support_helpers bundle update rubocop 2024-05-30 16:20:52 +00:00
tasks drop Rails 7.0 support 2024-07-05 15:30:54 +00:00
turnitin don't unnecessarily copy files before uploading 2024-02-02 19:32:30 +00:00
user_content Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
utils Add timing metrics to LTI endpoints 2024-01-26 22:18:21 +00:00
account_services.rb Remove Delicious from Canvas 2023-03-22 15:01:28 +00:00
address_book.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
anonymity.rb RuboCop: Style/RedundantSelf 2021-11-20 16:41:21 +00:00
api.rb Remove redundancy in UUID regex 2024-07-01 19:29:23 +00:00
api_route_set.rb bundle update rubocop 2024-05-30 16:20:52 +00:00
asset_signature.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
assignment_override_applicator.rb Eliminate has_overrides? n+1 2024-07-12 22:31:14 +00:00
assignment_util.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
atom_feed_helper.rb use a better author name for the atom feeds 2024-04-05 15:03:10 +00:00
authentication_methods.rb Don't authorize inst_access tokens from unusable keys 2023-09-26 22:01:03 +00:00
basic_lti.rb Kill require_dependency 2023-01-09 19:51:01 +00:00
brand_account_chain_resolver.rb favor active sub-account for branding 2021-12-08 18:15:55 +00:00
brand_config_helpers.rb Don't include parents in chain for regular accounts 2022-04-14 16:56:51 +00:00
brand_config_regenerator.rb bundle update rubocop 2023-12-06 14:25:02 +00:00
brandable_css.rb use script defer instead of async scripts 2024-01-30 15:02:41 +00:00
browser_support.rb bundle update rubocop-performance, rubocop-rails 2023-12-18 20:28:02 +00:00
canvadocs.rb bundle update rubocop-performance, rubocop-rails 2023-12-18 20:28:02 +00:00
canvas_imported_html_converter.rb Set up methods for html migration 2023-07-18 21:44:46 +00:00
canvas_logger.rb bundle update rubocop 2024-05-30 16:20:52 +00:00
capture_job_ids.rb add job_ids to sis_batches and parallel_importers 2023-06-07 17:09:46 +00:00
cc.rb Kill require_dependency 2023-01-09 19:51:01 +00:00
checkpoint.rb Hide overrides from students 2024-07-31 16:43:47 +00:00
checkpoint_labels.rb add SubAssignment model 2023-12-19 16:13:47 +00:00
content_licenses.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
content_notices.rb bundle update rubocop-performance, rubocop-rails 2023-12-18 20:28:02 +00:00
content_zipper.rb fix eportfolio exports with long filenames 2024-08-12 22:42:09 +00:00
conversation_batch_scrubber.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
conversation_helper.rb Data fix up for Conversation/ConversationParticipant 2023-02-17 19:17:24 +00:00
copy_authorized_links.rb rubocop: Lint/SendWithMixinArgument 2023-06-09 16:04:56 +00:00
course_link_validator.rb handle sylalbus links more robustly 2023-10-18 20:09:13 +00:00
course_pace_due_dates_calculator.rb Include account blackout dates in compressor 2023-11-15 18:13:23 +00:00
course_pace_hard_end_date_compressor.rb Include account blackout dates in compressor 2023-11-15 18:13:23 +00:00
course_paces_date_helpers.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
custom_validations.rb bundle update rubocop-performance, rubocop-rails 2023-12-18 20:28:02 +00:00
cuty_capt.rb make sure to upload the attachment for submission snapshots 2024-03-18 21:00:35 +00:00
dates_overridable.rb verify Assignment before checking for sub_assignments 2024-07-31 18:13:43 +00:00
delayed_message_scrubber.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
differentiable_assignment.rb Ensure objects with module overrides are not visible on show page 2024-06-24 19:35:34 +00:00
dump_helper.rb Remove unnecessary require statements 2023-01-04 21:38:21 +00:00
duplicating_objects.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
effective_due_dates.rb Ensure EDD works with multiple assignments/module configurations 2024-06-13 17:57:14 +00:00
email_address_validator.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
enrollments_from_user_list.rb Remove a lot of settings 2024-01-09 21:32:17 +00:00
eportfolio_page.rb improve recent submission filtering in eportfolios 2023-01-10 22:55:55 +00:00
external_feed_aggregator.rb switch to feedjira for atom feed parsing 2024-04-02 21:20:55 +00:00
external_statuses.rb Remove a lot of settings 2024-01-09 21:32:17 +00:00
feature.rb Re-add file verifiers to quizzes with feature flag 2024-06-06 15:30:58 +00:00
feature_flags.rb add reasonable failsafes for several usages of Consul 2023-07-12 14:51:15 +00:00
file_authenticator.rb Use SHA256 for cache keys 2023-04-05 17:57:09 +00:00
file_in_context.rb rubocop: Rails/FindBy 2024-06-11 19:46:18 +00:00
file_splitter.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
global_lookups.rb make globalLookups a module to extend, not a stub 2021-10-26 14:58:27 +00:00
google_docs_preview.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
grade_calculator.rb Create API for calculating student entered What-If scores 2024-07-16 17:40:51 +00:00
grade_display.rb display minus instead of en-dash 2023-10-09 16:24:10 +00:00
gradebook_exporter.rb add custom status to gradebook exports 2023-08-23 20:56:59 +00:00
gradebook_grading_period_assignments.rb fix viewing grades for deactivated students 2022-02-16 17:56:03 +00:00
gradebook_importer.rb bundle update rubocop 2023-12-06 14:25:02 +00:00
gradebook_settings_helpers.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
gradebook_user_ids.rb multi-select student groups 2024-02-21 17:49:21 +00:00
grading_period_helper.rb RuboCop: Style/RedundantSort 2021-11-19 22:25:07 +00:00
has_content_tags.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
health_checks.rb rails 7.1: fix health checks 2024-02-29 22:30:16 +00:00
host_url.rb Rails 6.1 basic spec functionality 2022-02-16 17:31:11 +00:00
i18n_time_zone.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
inst_fs.rb Remove a lot of settings 2024-01-09 21:32:17 +00:00
late_policy_applicator.rb make LatePolicyApplicator work properly with checkpoints 2024-06-20 21:41:03 +00:00
latex.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
learning_outcome_context.rb rubocop: Lint/SendWithMixinArgument 2023-06-09 16:04:56 +00:00
llm_configs.rb add rate limit for discussion summary prototype 2024-06-26 13:22:08 +00:00
locale_selection.rb Remove feature flag for Irish locale 2024-03-27 14:06:50 +00:00
locked_for.rb Slice module's attributes in LockedFor 2024-05-10 17:27:08 +00:00
logging_filter.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
login_hooks.rb RuboCop: Layout lib 2021-09-22 20:01:52 +00:00
material_changes.rb avoid recalculating enrollment states due to truncation 2023-05-16 19:36:36 +00:00
math_man.rb Use SHA256 for cache keys 2023-04-05 17:57:09 +00:00
message_dispatcher.rb Improve error logging for message batch dispatching 2022-06-23 15:10:18 +00:00
message_scrubber.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
messageable_user.rb bundle update rubocop 2024-05-30 16:20:52 +00:00
missing_policy_applicator.rb make MissingPolicyApplicator work properly with checkpoints 2024-06-20 15:40:52 +00:00
model_cache.rb rubocop: Lint/SendWithMixinArgument 2023-06-09 16:04:56 +00:00
moderation.rb add SubAssignment model 2023-12-19 16:13:47 +00:00
must_view_module_progressor.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
mutable.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
net_ldap_extensions.rb wrap net_ldap_extensions in a zeitwerk compatible module 2021-10-07 18:50:58 +00:00
notification_message_creator.rb Remove a lot of settings 2024-01-09 21:32:17 +00:00
package_root.rb Remove unnecessary require statements 2023-01-04 21:38:21 +00:00
pandata_events.rb change pandata events API call from job to thread 2024-04-08 19:21:40 +00:00
permissions.rb RuboCop: Layout lib 2021-09-22 20:01:52 +00:00
permissions_helper.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
plannable.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
planner_api_helper.rb use unique_constraint_retry for planner ovveride sync 2023-07-28 16:32:53 +00:00
planner_helper.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
progress_runner.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
pronouns.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
quiz_math_data_fixup.rb update rubocop, and apply new cops 2023-07-03 22:11:42 +00:00
request_error.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
rubric_context.rb rubocop: Lint/SendWithMixinArgument 2023-06-09 16:04:56 +00:00
rubric_csv_importer.rb build rubric import backend 2024-07-24 19:06:13 +00:00
rubric_importer_errors.rb build rubric import backend 2024-07-24 19:06:13 +00:00
scope_filter.rb RuboCop: Layout lib 2021-09-22 20:01:52 +00:00
score_statistics_generator.rb Remove a lot of settings 2024-01-09 21:32:17 +00:00
scrypt_provider.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
search_term_helper.rb Support basic unicode normalization in search helper 2022-02-16 22:19:10 +00:00
send_to_stream.rb Introduce single table inheritance (STI) to the Assignment model 2023-12-05 22:09:24 +00:00
sentry_proxy.rb Misc changes to kickstart ruby 3.0 testing 2022-12-13 14:27:41 +00:00
session_token.rb RuboCop: Style/StringLiterals, Style/StringLiteralsInInterpolation 2021-11-25 14:03:06 +00:00
simple_stats.rb rubocop: Style/TernaryParentheses, Style/RedundantParentheses 2023-04-12 14:56:48 +00:00
simple_tags.rb rubocop: Lint/SendWithMixinArgument 2023-06-09 16:04:56 +00:00
sis.rb do away with non-conventional "common" module 2021-10-07 21:55:24 +00:00
smart_search.rb smart search: copy embeddings in course copy/blueprint sync 2024-06-05 16:09:08 +00:00
smart_searchable.rb smart search: remove neighbor gem 2024-07-19 20:00:37 +00:00
sorts_assignments.rb bundle update rubocop-rails 2024-05-29 16:33:01 +00:00
ssl_common.rb bundle update multipart-post 2023-08-14 16:37:46 +00:00
stats.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
sticky_sis_fields.rb rubocop: Lint/SendWithMixinArgument 2023-06-09 16:04:56 +00:00
submission_lifecycle_manager.rb bundle update rubocop 2024-05-30 16:20:52 +00:00
submission_list.rb remove OpenObject usage 2024-04-23 17:47:19 +00:00
submission_search.rb bundle update rubocop-rails 2024-05-29 16:33:01 +00:00
submittable.rb sync assignment and subassignment publish status with topic 2024-07-23 15:57:18 +00:00
submittables_grading_period_protection.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
summary_message_consolidator.rb rubocop: Layout/Multiline*LineBreaks 2023-05-01 19:31:42 +00:00
text_helper.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
time_zone_helper.rb rubocop: Layout/Multiline*LineBreaks 2023-05-01 19:31:42 +00:00
timed_cache.rb RuboCop: Style/MethodCallWithoutArgsParentheses 2021-11-18 23:07:30 +00:00
token_scopes.rb Include New Quizzes endpoints in token scopes 2024-08-02 20:45:47 +00:00
token_scopes_helper.rb Fail a test on route changes used by dev keys 2022-07-12 20:24:05 +00:00
translation.rb Fix greeek typo 2024-07-24 13:26:08 +00:00
turnitin.rb Add Sentry Logging for TII api error 2023-12-15 20:59:20 +00:00
turnitin_id.rb
unzip_attachment.rb Remove more settings 2024-01-29 16:21:38 +00:00
user_content.rb Ensure audio tags get new file during copy 2024-05-17 19:39:10 +00:00
user_list.rb bundle update rubocop 2023-12-06 14:25:02 +00:00
user_list_v2.rb Remove a lot of settings 2024-01-09 21:32:17 +00:00
user_merge.rb remove guard from active duplicate merge data objects 2024-05-28 23:01:53 +00:00
user_search.rb Allow admins to search and view deleted users 2024-01-11 01:49:01 +00:00
uuid_helper.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
vericite.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00
visibility_plucking_helper.rb RuboCop: Style/RedundantSelf 2021-11-20 16:41:21 +00:00
zip_extractor.rb Rubocop for ruby 3.1 2023-06-06 16:44:26 +00:00