File tree 18 files changed +95
-16
lines changed
18 files changed +95
-16
lines changed Original file line number Diff line number Diff line change
1
+ SANITIZED_ALLOWED_TAGS="strong em ul ol li"
2
+ SANITIZED_ALLOWED_ATTRIBUTES="style"
Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ gem 'mime-types', '~> 3.3'
14
14
15
15
gem 'carrierwave' , '~> 2.1.1'
16
16
gem 'carrierwave-base64' , '~> 2.8.0'
17
- gem 'dotenv-rails' , groups : [ :development , :test ]
17
+ gem 'dotenv-rails'
18
18
19
19
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
20
20
# gem 'jbuilder', '~> 2.5'
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ def create
25
25
@answer = Answer . new ( answer_params )
26
26
27
27
if @answer . save
28
- render json : serialize ( @answer ) , status : :created
28
+ render json : serialize ( @answer . reload ) , status : :created
29
29
else
30
30
render json : @answer . errors , status : :unprocessable_entity
31
31
end
@@ -34,7 +34,7 @@ def create
34
34
# PATCH/PUT /answers/1
35
35
def update
36
36
if @answer . update ( answer_params )
37
- render json : serialize ( @answer )
37
+ render json : serialize ( @answer . reload )
38
38
else
39
39
render json : @answer . errors , status : :unprocessable_entity
40
40
end
Original file line number Diff line number Diff line change @@ -27,7 +27,7 @@ def create
27
27
@comment = Comment . new ( comment_params )
28
28
29
29
if @comment . save
30
- render json : serialize ( @comment ) , status : :created
30
+ render json : serialize ( @comment . reload ) , status : :created
31
31
else
32
32
render json : @comment . errors , status : :unprocessable_entity
33
33
end
@@ -36,7 +36,7 @@ def create
36
36
# PATCH/PUT /comments/1
37
37
def update
38
38
if @comment . update ( comment_params )
39
- render json : serialize ( @comment )
39
+ render json : serialize ( @comment . reload )
40
40
else
41
41
render json : @comment . errors , status : :unprocessable_entity
42
42
end
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ def create
25
25
@evaluation = Evaluation . new ( evaluation_params )
26
26
27
27
if @evaluation . save
28
- render json : serialize ( @evaluation ) , status : :created
28
+ render json : serialize ( @evaluation . reload ) , status : :created
29
29
else
30
30
render json : @evaluation . errors , status : :unprocessable_entity
31
31
end
@@ -36,7 +36,7 @@ def update
36
36
if @evaluation . update ( evaluation_params )
37
37
@evaluation . global_status = 0 if @evaluation . status == 1 && evaluation_params [ "global_status" ] . blank?
38
38
@evaluation . save
39
- render json : serialize ( @evaluation )
39
+ render json : serialize ( @evaluation . reload )
40
40
else
41
41
render json : @evaluation . errors , status : :unprocessable_entity
42
42
end
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ def index
11
11
12
12
def create
13
13
knowledge_base = KnowledgeBase . create ( knowledge_base_params )
14
- render json : serialize ( knowledge_base )
14
+ render json : serialize ( knowledge_base . reload )
15
15
end
16
16
17
17
def show
@@ -20,7 +20,7 @@ def show
20
20
21
21
def update
22
22
@knowledge_base . update ( knowledge_base_params )
23
- render json : serialize ( @knowledge_base )
23
+ render json : serialize ( @knowledge_base . reload )
24
24
end
25
25
26
26
def destroy
Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ def create
16
16
knowledge = Knowledge . new ( data )
17
17
knowledge . knowledge_base = @knowledge_base
18
18
knowledge . save
19
- render json : serialize ( knowledge )
19
+ render json : serialize ( knowledge . reload )
20
20
end
21
21
22
22
def show
@@ -27,7 +27,7 @@ def update
27
27
data = knowledge_params
28
28
data [ "items" ] = JSON . parse ( data [ "items" ] ) if data [ "items" ]
29
29
@knowledge . update ( data )
30
- render json : serialize ( @knowledge )
30
+ render json : serialize ( @knowledge . reload )
31
31
end
32
32
33
33
def destroy
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ def create
25
25
@measure = Measure . new ( measure_params )
26
26
27
27
if @measure . save
28
- render json : serialize ( @measure ) , status : :created
28
+ render json : serialize ( @measure . reload ) , status : :created
29
29
else
30
30
render json : @measure . errors , status : :unprocessable_entity
31
31
end
@@ -34,7 +34,7 @@ def create
34
34
# PATCH/PUT /measures/1
35
35
def update
36
36
if @measure . update ( measure_params )
37
- render json : serialize ( @measure )
37
+ render json : serialize ( @measure . reload )
38
38
else
39
39
render json : @measure . errors , status : :unprocessable_entity
40
40
end
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ def create
22
22
@structure = Structure . new ( structures_parameters )
23
23
24
24
if @structure . save
25
- render json : serialize ( @structure ) , status : :created
25
+ render json : serialize ( @structure . reload ) , status : :created
26
26
else
27
27
render json : @structure . errors , status : :unprocessable_entity
28
28
end
@@ -34,7 +34,7 @@ def update
34
34
structures_parameters [ :data ] = JSON . parse ( structures_parameters [ :data ] ) if structures_parameters [ :data ]
35
35
36
36
if @structure . update ( structures_parameters )
37
- render json : serialize ( @structure )
37
+ render json : serialize ( @structure . reload )
38
38
else
39
39
render json : @structure . errors , status : :unprocessable_entity
40
40
end
Original file line number Diff line number Diff line change 1
1
class Answer < ApplicationRecord
2
+ include ActionView ::Helpers ::SanitizeHelper
2
3
belongs_to :pia , inverse_of : :answers
3
4
validates :reference_to , presence : true
5
+ after_initialize :overwrite_to_safety_values
6
+
7
+ private
8
+
9
+ def overwrite_to_safety_values
10
+ self . data [ 'text' ] = sanitize self . data [ 'text' ]
11
+ end
4
12
end
Original file line number Diff line number Diff line change 1
1
class Comment < ApplicationRecord
2
+ include ActionView ::Helpers ::SanitizeHelper
2
3
belongs_to :pia , inverse_of : :comments
3
4
validates :reference_to , presence : true
5
+ after_initialize :overwrite_to_safety_values
6
+
7
+ private
8
+
9
+ def overwrite_to_safety_values
10
+ self . description = sanitize read_attribute ( :description )
11
+ end
4
12
end
Original file line number Diff line number Diff line change 1
1
class Evaluation < ApplicationRecord
2
+ include ActionView ::Helpers ::SanitizeHelper
2
3
belongs_to :pia , inverse_of : :evaluations
3
4
validates :reference_to , presence : true
5
+ after_initialize :overwrite_to_safety_values
6
+
7
+ private
8
+
9
+ def overwrite_to_safety_values
10
+ self . action_plan_comment = sanitize read_attribute ( :action_plan_comment )
11
+ self . evaluation_comment = sanitize read_attribute ( :evaluation_comment )
12
+ end
4
13
end
Original file line number Diff line number Diff line change 1
1
class Knowledge < ApplicationRecord
2
+ include ActionView ::Helpers ::SanitizeHelper
2
3
belongs_to :knowledge_base
3
-
4
4
validates :name , presence : true
5
5
validates :knowledge_base , presence : true
6
+ after_initialize :overwrite_to_safety_values
7
+
8
+ private
9
+
10
+ def overwrite_to_safety_values
11
+ self . name = sanitize read_attribute ( :name )
12
+ end
6
13
end
Original file line number Diff line number Diff line change 1
1
class KnowledgeBase < ApplicationRecord
2
+ include ActionView ::Helpers ::SanitizeHelper
2
3
validates :name , presence : true
3
4
validates :author , presence : true
4
5
validates :contributors , presence : true
5
6
has_many :knowledges , dependent : :destroy
7
+ after_initialize :overwrite_to_safety_values
8
+
9
+ private
10
+
11
+ def overwrite_to_safety_values
12
+ self . name = sanitize read_attribute ( :name )
13
+ self . author = sanitize read_attribute ( :author )
14
+ self . contributors = sanitize read_attribute ( :contributors )
15
+ end
6
16
end
Original file line number Diff line number Diff line change 1
1
class Measure < ApplicationRecord
2
+ include ActionView ::Helpers ::SanitizeHelper
2
3
belongs_to :pia , inverse_of : :measures
4
+ after_initialize :overwrite_to_safety_values
5
+
6
+ private
7
+
8
+ def overwrite_to_safety_values
9
+ self . title = sanitize read_attribute ( :title )
10
+ self . content = sanitize read_attribute ( :content )
11
+ self . placeholder = sanitize read_attribute ( :placeholder )
12
+ end
3
13
end
Original file line number Diff line number Diff line change 1
1
class Pia < ApplicationRecord
2
+ include ActionView ::Helpers ::SanitizeHelper
2
3
has_many :answers , inverse_of : :pia , dependent : :destroy
3
4
has_many :comments , inverse_of : :pia , dependent : :destroy
4
5
has_many :evaluations , inverse_of : :pia , dependent : :destroy
@@ -8,6 +9,8 @@ class Pia < ApplicationRecord
8
9
belongs_to :structure , optional : true
9
10
validates :name , presence : true
10
11
12
+ after_initialize :overwrite_to_safety_values
13
+
11
14
def self . import ( json_string )
12
15
json = JSON . parse ( json_string )
13
16
json . each do |pia_in |
@@ -60,4 +63,12 @@ def duplicate_self
60
63
end
61
64
end
62
65
end
66
+
67
+ def overwrite_to_safety_values
68
+ self . name = sanitize read_attribute ( :name )
69
+ self . author_name = sanitize read_attribute ( :author_name )
70
+ self . evaluator_name = sanitize read_attribute ( :evaluator_name )
71
+ self . validator_name = sanitize read_attribute ( :validator_name )
72
+ self . category = sanitize read_attribute ( :category )
73
+ end
63
74
end
Original file line number Diff line number Diff line change 1
1
class Structure < ApplicationRecord
2
+ include ActionView ::Helpers ::SanitizeHelper
2
3
has_many :pias , dependent : :nullify
4
+ after_initialize :overwrite_to_safety_values
5
+
6
+ private
7
+
8
+ def overwrite_to_safety_values
9
+ self . name = sanitize read_attribute ( :name )
10
+ self . sector_name = sanitize read_attribute ( :sector_name )
11
+ end
3
12
end
Original file line number Diff line number Diff line change @@ -31,5 +31,10 @@ class Application < Rails::Application
31
31
# Middleware like session, flash, cookies can be added back manually.
32
32
# Skip views, helpers and assets when generating a new resource.
33
33
config . api_only = true
34
+
35
+ tags_allowed = ENV [ 'SANITIZED_ALLOWED_TAGS' ] ? ENV [ 'SANITIZED_ALLOWED_TAGS' ] . split ( ' ' ) : [ ]
36
+ config . action_view . sanitized_allowed_tags = tags_allowed
37
+ attributes_allowed = ENV [ 'SANITIZED_ALLOWED_ATTRIBUTES' ] ? ENV [ 'SANITIZED_ALLOWED_ATTRIBUTES' ] . split ( ' ' ) : [ ]
38
+ config . action_view . sanitized_allowed_attributes = attributes_allowed
34
39
end
35
40
end
You can’t perform that action at this time.
0 commit comments