canvas-lms/app/models
Brian Palmer 6231671d21 fix another case of infinite root_attachment_id in course copying
A bug in the spec (b was never saved) was hiding another case where an
root_attachment_id loop could be created.

fixes #9252

test plan: Set up a course A with at least one file. Clone course A to
make course B. Then copy course B back into course A. Also try copying a
course into itself. None of these actions should cause loading
/courses/A/files or /courses/B/files to break. You can also check the db
directly to verify that root_attachment_id doesn't equal id for any of
the rows.

Change-Id: I114bc888067bf0308cc9c8a6a926438734f1e06f
Reviewed-on: https://gerrit.instructure.com/12450
Reviewed-by: Bracken Mosbacker <bracken@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
2012-07-24 13:50:31 -06:00
..
discussion_topic use ids relative to the default shard for strands refs #6886 2012-04-02 09:47:09 -06:00
quiz_question Some quiz result display fixes and a scoring fix. Fixes #7894 2012-05-22 09:32:21 -06:00
abstract_course.rb make course terms sticky 2011-09-30 11:00:27 -06:00
access_token.rb implement oauth2 native app flow, closes #5029 2011-07-18 22:27:36 -06:00
account.rb sub-account branding; closes #9368 2012-07-18 13:57:52 -06:00
account_authorization_config.rb api: translate absolute paths to full urls with the canvas host 2012-07-02 09:53:59 -06:00
account_notification.rb fix account announcements across shards fixes #7396 2012-03-13 09:14:26 -06:00
account_report.rb adding account report api closes #9456 2012-07-13 15:34:48 -06:00
account_user.rb temporary and deleted users have no account associations 2012-02-08 14:37:17 -07:00
alert.rb cache notifications in memory 2012-03-05 14:49:27 -07:00
alert_criterion.rb alerts, closes #4317 2011-08-24 10:19:44 -06:00
announcement.rb allow group members to create announcments 2012-07-20 14:41:49 -06:00
appointment_group.rb calendar API documentation, fixes/tweaks 2012-07-16 08:54:11 -06:00
appointment_group_context.rb multiple contexts per appointment group 2012-04-30 15:30:03 -06:00
appointment_group_sub_context.rb multiple contexts per appointment group 2012-04-30 15:30:03 -06:00
assessment_question.rb correctly prepare quiz questions when copying course 2012-05-08 09:10:41 -06:00
assessment_question_bank.rb don't repeat questions when picking from banks, fixes #4212 2011-10-19 09:42:29 -06:00
assessment_question_bank_user.rb Initial commit. 2011-01-31 18:57:29 -07:00
assessment_request.rb i18n AssessmentRequest 2011-06-09 16:43:35 -06:00
asset_user_access.rb remove dead code around page views 2012-03-15 08:46:51 -06:00
assignment.rb correctly associate group assignment submissions 2012-07-17 11:39:17 -06:00
assignment_group.rb recompute enrollment grades after transaction commits 2012-07-02 10:23:48 -06:00
assignment_reminder.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
attachment.rb fix another case of infinite root_attachment_id in course copying 2012-07-24 13:50:31 -06:00
attachment_association.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
authorization_code.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
big_blue_button_conference.rb zero-pad the voiceBridge id 2011-08-10 14:33:34 -06:00
bookmark_service.rb i18n Bookmark Service 2011-06-16 07:16:10 -06:00
calendar_event.rb formatting for ICS calendar events 2012-07-02 11:05:48 -06:00
cloned_item.rb make sure links in assessment questions are correctly translated, fixes #6012 2011-10-21 08:36:34 -06:00
collaboration.rb remove collaborations.yml dependency, refs #5796 2011-10-25 17:32:32 -06:00
collaborator.rb Initial commit. 2011-01-31 18:57:29 -07:00
collection.rb Merge branch 'master' into dev/fft 2012-06-18 15:24:09 -06:00
collection_item.rb items and followers counts for collections 2012-06-18 11:04:58 -06:00
collection_item_data.rb improve cross-shard collection item and activity stream support 2012-06-07 14:31:45 -06:00
collection_item_upvote.rb improve cross-shard collection item and activity stream support 2012-06-07 14:31:45 -06:00
communication_channel.rb use a meaningful context for confirmation notifications 2012-02-22 14:43:53 -07:00
content_export.rb assignment freezing improvements and fixes 2012-05-24 15:37:34 -06:00
content_migration.rb copy attachments referenced in html content when copying course 2012-05-09 10:31:02 -06:00
content_tag.rb allow using an item in modules more than once 2012-06-21 10:12:22 -06:00
context.rb 1.9 - fix content tag asset lookup 2012-05-15 22:39:54 -06:00
context_external_tool.rb extension tool launches default to settings from main tool 2012-06-26 12:10:36 -06:00
context_module.rb allow using an item in modules more than once 2012-06-21 10:12:22 -06:00
context_module_item.rb allow using an item in modules more than once 2012-06-21 10:12:22 -06:00
context_module_progression.rb use kept_score for quizzes when evaluating module requirements 2011-08-11 10:01:39 -06:00
context_module_sub_header.rb optimize AdheresToPolicy 2011-07-14 13:25:28 -06:00
conversation.rb include attachments et al w/ forwarded messages, fixes #5371 2012-07-06 08:15:09 -06:00
conversation_message.rb include attachments et al w/ forwarded messages, fixes #5371 2012-07-06 08:15:09 -06:00
conversation_message_participant.rb ensure context tags are shared by 2+ participants, fixes #7231 2012-02-13 13:29:45 -07:00
conversation_participant.rb include attachments et al w/ forwarded messages, fixes #5371 2012-07-06 08:15:09 -06:00
course.rb Batch file notifications; closes #9012 2012-07-20 14:45:12 -06:00
course_account_association.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
course_import.rb make course copy have lower priority 2012-01-24 15:45:26 -07:00
course_section.rb drop unused course section columns 2012-06-18 10:32:01 -06:00
delayed_message.rb cache notifications in memory 2012-03-05 14:49:27 -07:00
delayed_notification.rb notifications: allow including extra data for messages 2012-04-18 17:08:13 -06:00
designer_enrollment.rb straighten out course designer permissions 2012-01-13 18:56:50 -07:00
developer_key.rb developer keys mgmt page 2012-07-18 09:13:52 -06:00
dim_dim_conference.rb wimba integration, fixes #2989 2011-02-25 14:35:14 -07:00
discussion_entry.rb Batch file notifications; closes #9012 2012-07-20 14:45:12 -06:00
discussion_entry_participant.rb discussion topics materialized view api, refs #7567 2012-03-22 12:49:49 -06:00
discussion_topic.rb Batch file notifications; closes #9012 2012-07-20 14:45:12 -06:00
discussion_topic_participant.rb read/unread state + counts for discussions; closes #7173 2012-02-24 13:34:54 -07:00
document_service.rb Initial commit. 2011-01-31 18:57:29 -07:00
enrollment.rb don't allow TAs to delete or reset courses 2012-07-16 10:50:10 -06:00
enrollment_dates_override.rb term start/term end, rather than whenever 2011-09-13 15:20:15 -06:00
enrollment_term.rb improve performance of terms page 2012-05-29 09:52:46 -06:00
eportfolio.rb account-level option to disable eportfolios, closes #5169 2011-08-24 17:38:06 -06:00
eportfolio_category.rb localize ePortfolios 2011-06-24 13:17:25 -06:00
eportfolio_entry.rb 1.9 - fix eportfolios 2012-05-17 23:10:51 -06:00
error_report.rb Minor code refactor loosely related to #8521 2012-06-25 15:10:48 -06:00
etherpad_collaboration.rb remove collaborations.yml dependency, refs #5796 2011-10-25 17:32:32 -06:00
external_feed.rb replace usage of Date.today 2011-12-20 15:25:45 -07:00
external_feed_entry.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
external_url.rb optimize AdheresToPolicy 2011-07-14 13:25:28 -06:00
favorite.rb added favorite courses option to main menu 2011-10-24 15:50:34 -06:00
folder.rb Batch file notifications; closes #9012 2012-07-20 14:45:12 -06:00
google_docs_collaboration.rb Initial commit. 2011-01-31 18:57:29 -07:00
gradebook_upload.rb prepare for foreign keys refs #6895 2012-05-10 09:46:05 -06:00
grading_standard.rb assign the lowest grade for a below-scale score; fixes #8643 2012-06-20 14:32:28 -06:00
group.rb add collaborations to group nav; fixes #5475 2012-07-24 10:21:50 -06:00
group_category.rb correctly associate group assignment submissions 2012-07-17 11:39:17 -06:00
group_membership.rb some auto follow/unfollow fixes for sharding 2012-06-22 12:45:57 -06:00
hashtag.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
inbox_item.rb added states so we can retire messages w/o deleting them yet 2011-08-16 21:15:26 -06:00
learning_outcome.rb undelete course objects on course copy 2012-05-07 09:24:14 -06:00
learning_outcome_group.rb fix infinite recursion in outcome groups 2011-12-19 16:28:26 -07:00
learning_outcome_result.rb avoid several extra cases of saving learning outcome results 2011-05-31 13:10:33 -06:00
mailer.rb allow for configuration of outgoing email name 2011-07-21 13:33:16 -06:00
media_object.rb create the media object for submissions and comments if it doesn't exist 2012-07-17 16:17:08 -06:00
message.rb api: translate absolute paths to full urls with the canvas host 2012-07-02 09:53:59 -06:00
notification.rb Batch file notifications; closes #9012 2012-07-20 14:45:12 -06:00
notification_policy.rb normalize user_id out of notification_policies 2012-02-01 12:42:23 -07:00
oauth_request.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
observer_enrollment.rb fix page error if observed is not an active student 2012-03-09 10:46:56 -07:00
open_object.rb Initial commit. 2011-01-31 18:57:29 -07:00
page_comment.rb localize PageComments 2011-06-17 08:28:33 -06:00
page_view.rb avoid the sub-transaction (savepoint) when skipping page view updates 2012-06-12 10:55:25 -06:00
plugin_setting.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
pseudonym.rb new login page styles, fixes #9458 2012-07-18 16:12:00 -06:00
pseudonym_session.rb make sure cross-account logins go through the rate limiter stuff 2012-06-26 10:46:04 -06:00
quiz.rb generate quiz data for copied surveys and practice quizzes 2012-06-29 11:42:58 -06:00
quiz_group.rb correctly prepare quiz questions when copying course 2012-05-08 09:10:41 -06:00
quiz_question.rb correctly prepare quiz questions when copying course 2012-05-08 09:10:41 -06:00
quiz_submission.rb saved quiz attempts not auto-submitted at due time, fixes #7933 2012-05-14 09:20:05 -06:00
quiz_submission_snapshot.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
report_snapshot.rb filter bogus snapshot data 2012-06-20 13:43:17 -06:00
role_override.rb developer keys mgmt page 2012-07-18 09:13:52 -06:00
rubric.rb undelete course objects on course copy 2012-05-07 09:24:14 -06:00
rubric_assessment.rb Show freeform rubric comments to students, fixes #4864 2012-02-27 16:40:46 -07:00
rubric_association.rb don't try to link account rubrics to assessments; fixes #8864 2012-06-13 13:01:51 -06:00
scribd_account.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
scribd_mime_type.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
session_persistence_token.rb make "stay logged in" use a one-time token 2011-11-22 10:15:13 -07:00
setting.rb conversations api, closes #4753 2011-09-13 09:28:57 -06:00
short_message.rb Initial commit. 2011-01-31 18:57:29 -07:00
short_message_association.rb optimize AdheresToPolicy 2011-07-14 13:25:28 -06:00
sis_batch.rb unstick workflow_state when batch deleting a course 2012-07-07 06:47:29 -06:00
stream_item.rb added course data to Submission stream items 2012-06-21 10:04:32 -06:00
stream_item_instance.rb improve cross-shard collection item and activity stream support 2012-06-07 14:31:45 -06:00
student_enrollment.rb Minor fixes to StudentEnrollment associations. 2012-05-04 16:46:43 -06:00
student_view_enrollment.rb student view; closes #6995 2012-04-03 14:11:07 -06:00
submission.rb create the media object for submissions and comments if it doesn't exist 2012-07-17 16:17:08 -06:00
submission_comment.rb create the media object for submissions and comments if it doesn't exist 2012-07-17 16:17:08 -06:00
submission_comment_participant.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
ta_enrollment.rb straighten out course designer permissions 2012-01-13 18:56:50 -07:00
tableless.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
teacher_enrollment.rb straighten out course designer permissions 2012-01-13 18:56:50 -07:00
thumbnail.rb thumbnails inherit their s3 bucket from their attachment 2012-05-22 15:43:13 -06:00
user.rb fix messageable_users caching problem 2012-07-21 10:43:07 -06:00
user_account_association.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
user_follow.rb some auto follow/unfollow fixes for sharding 2012-06-22 12:45:57 -06:00
user_note.rb User notes from conversation messages; still needs UI 2011-07-31 16:09:03 -06:00
user_observer.rb user co-enrollment backend work, closes #8588 2012-05-23 12:21:00 -06:00
user_profile.rb user_profile_links table and model 2012-07-24 10:03:04 -06:00
user_profile_link.rb user_profile_links table and model 2012-07-24 10:03:04 -06:00
user_service.rb fix user_service utc bug 2011-10-04 09:54:52 -06:00
web_conference.rb only send conference invitations to active members fixes #5290 2012-04-26 14:19:50 -06:00
web_conference_participant.rb check all models for protecting attributes refs #3847 2011-05-25 17:38:50 -06:00
wiki.rb string extraction for most i18n oddities 2011-06-30 16:48:12 -06:00
wiki_namespace.rb optimize AdheresToPolicy 2011-07-14 13:25:28 -06:00
wiki_page.rb better handle nil users on wikis and discussions 2012-07-11 11:06:21 -06:00
wiki_page_comment.rb optimize AdheresToPolicy 2011-07-14 13:25:28 -06:00
wimba_conference.rb expose sortable name to user, fixes #5317 2011-10-31 12:22:08 -06:00
zip_file_import.rb use ids relative to the default shard for strands refs #6886 2012-04-02 09:47:09 -06:00