Skip to content

Commit 384c260

Browse files
committed
rails4: fix invalid utf8 removal on old serialized attributes
refs #CNVS-21596 Change-Id: I7888abfd6b36a7b685b6d89859d64bc1af72725e Reviewed-on: https://gerrit.instructure.com/58387 Tested-by: Jenkins Reviewed-by: Cody Cutrer <cody@instructure.com> Product-Review: James Williams <jamesw@instructure.com> QA-Review: James Williams <jamesw@instructure.com>
1 parent 63afc25 commit 384c260

16 files changed

Lines changed: 47 additions & 37 deletions

app/models/assessment_question.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class AssessmentQuestion < ActiveRecord::Base
4545
"multiple_dropdowns_question", "calculated_question",
4646
"essay_question", "true_false_question", "file_upload_question"]
4747

48-
serialize :question_data
48+
serialize_utf8_safe :question_data
4949

5050
set_policy do
5151
given{|user, session| self.context.grants_right?(user, session, :manage_assignments) }

app/models/context_external_tool.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class ContextExternalTool < ActiveRecord::Base
2222
validates_presence_of :config_xml, :if => lambda { |t| t.config_type == "by_xml" }
2323
validates_length_of :domain, :maximum => 253, :allow_blank => true
2424
validate :url_or_domain_is_set
25-
serialize :settings
25+
serialize_utf8_safe :settings
2626
attr_accessor :config_type, :config_url, :config_xml
2727

2828
before_save :infer_defaults, :validate_vendor_help_link

app/models/eportfolio_entry.rb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,26 +39,26 @@ class EportfolioEntry < ActiveRecord::Base
3939
validates_length_of :name, :maximum => maximum_string_length, :allow_nil => false, :allow_blank => true
4040
validates_length_of :slug, :maximum => maximum_string_length, :allow_nil => false, :allow_blank => true
4141
has_many :page_comments, :as => :page, :include => :user, :order => 'page_comments.created_at DESC'
42-
4342

44-
serialize :content
43+
44+
serialize_utf8_safe :content
4545

4646
set_policy do
4747
given {|user| user && self.allow_comments }
4848
can :comment
4949
end
50-
50+
5151
def infer_comment_visibility
5252
self.show_comments = false if !self.allow_comments
5353
true
5454
end
5555
protected :infer_comment_visibility
56-
56+
5757
def update_portfolio
5858
self.eportfolio.save!
5959
end
6060
protected :update_portfolio
61-
61+
6262
def content_sections
6363
(self.content.is_a?(String) && Array(self.content) || self.content || []).map do |section|
6464
if section.is_a?(Hash)
@@ -68,19 +68,19 @@ def content_sections
6868
end
6969
end
7070
end
71-
71+
7272
def submission_ids
7373
res = []
7474
content_sections.each do |section|
7575
res << section["submission_id"] if section["section_type"] == "submission"
7676
end
7777
res
7878
end
79-
79+
8080
def full_slug
8181
(self.eportfolio_category.slug rescue "") + "_" + self.slug
8282
end
83-
83+
8484
def attachments
8585
res = []
8686
content_sections.each do |section|
@@ -90,7 +90,7 @@ def attachments
9090
end
9191
res.compact
9292
end
93-
93+
9494
def submissions
9595
res = []
9696
content_sections.each do |section|
@@ -128,19 +128,19 @@ def parse_content(params)
128128
else
129129
new_obj = nil
130130
end
131-
131+
132132
if new_obj
133133
self.content << new_obj
134134
end
135135
end
136136
self.content << t(:default_content, "No Content Added Yet") if self.content.empty?
137137
end
138138

139-
139+
140140
def category_slug
141141
self.eportfolio_category.slug rescue self.eportfolio_category_id
142142
end
143-
143+
144144
def infer_unique_slug
145145
pages = self.eportfolio_category.eportfolio_entries rescue []
146146
self.name ||= t(:default_name, "Page Name")

app/models/error_report.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
class ErrorReport < ActiveRecord::Base
2222
belongs_to :user
2323
belongs_to :account
24-
serialize :http_env
24+
serialize_utf8_safe :http_env
2525
# misc key/value pairs with more details on the error
26-
serialize :data, Hash
26+
serialize_utf8_safe :data, Hash
2727

2828
before_save :guess_email
2929

app/models/learning_outcome.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class LearningOutcome < ActiveRecord::Base
2828

2929
EXPORTABLE_ATTRIBUTES = [:id, :context_id, :context_type, :short_description, :context_code, :description, :data, :workflow_state, :created_at, :updated_at, :vendor_guid, :low_grade, :high_grade]
3030
EXPORTABLE_ASSOCIATIONS = [:context, :learning_outcome_results, :alignments]
31-
serialize :data
31+
serialize_utf8_safe :data
3232

3333
before_validation :infer_default_calculation_method, :adjust_calculation_int
3434
before_save :infer_defaults

app/models/profile.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ class Profile < ActiveRecord::Base
44

55
attr_accessible :context, :root_account, :title, :path, :description, :visibility, :position
66

7-
serialize :data
7+
serialize_utf8_safe :data
88

99
validates_presence_of :root_account
1010
validates_presence_of :context

app/models/quizzes/quiz.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def self.polymorphic_names
9696
after_save :touch_context
9797
after_save :regrade_if_published
9898

99-
serialize :quiz_data
99+
serialize_utf8_safe :quiz_data
100100

101101
simply_versioned
102102

app/models/quizzes/quiz_question.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class Quizzes::QuizQuestion < ActiveRecord::Base
5555
before_destroy :delete_assessment_question, unless: :generated?
5656
before_destroy :update_quiz
5757
validates_presence_of :quiz_id
58-
serialize :question_data
58+
serialize_utf8_safe :question_data
5959
after_save :update_quiz
6060

6161
workflow do

app/models/quizzes/quiz_submission.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ def grade_submission!
7979
submission.update_attribute(:workflow_state, "graded")
8080
end
8181

82-
serialize :quiz_data
83-
serialize :submission_data
82+
serialize_utf8_safe :quiz_data
83+
serialize_utf8_safe :submission_data
8484

8585
simply_versioned :automatic => false
8686

app/models/quizzes/quiz_submission_snapshot.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
class Quizzes::QuizSubmissionSnapshot < ActiveRecord::Base
2020
belongs_to :quiz_submission, class_name: 'Quizzes::QuizSubmission'
21-
serialize :data
21+
serialize_utf8_safe :data
2222

2323
attr_accessible :quiz_submission, :attempt, :data
2424
end

0 commit comments

Comments
 (0)