-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #721 from openedx/eahmadjaved/ENT-9615
feat: update some fields in customer agreemnet model
- Loading branch information
Showing
14 changed files
with
250 additions
and
78 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
53 changes: 53 additions & 0 deletions
53
...er/apps/subscriptions/migrations/0072_customeragreement_button_label_in_modal_and_more.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# Generated by Django 4.2.16 on 2024-10-18 09:53 | ||
|
||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
('subscriptions', '0071_customeragreement_enable_auto_applied_subscriptions_with_universal_link_and_more'), | ||
] | ||
|
||
operations = [ | ||
migrations.AddField( | ||
model_name='customeragreement', | ||
name='button_label_in_modal', | ||
field=models.CharField(blank=True, help_text='The text that will appear as on the button in the expiration modal', max_length=255, null=True), | ||
), | ||
migrations.AddField( | ||
model_name='customeragreement', | ||
name='modal_header_text', | ||
field=models.CharField(blank=True, help_text='The bold text that will appear as the header in the expiration modal.', max_length=512, null=True), | ||
), | ||
migrations.AddField( | ||
model_name='customeragreement', | ||
name='url_for_button_in_modal', | ||
field=models.CharField(blank=True, help_text='The URL that should underly the sole button in the expiration modal', max_length=512, null=True), | ||
), | ||
migrations.AddField( | ||
model_name='historicalcustomeragreement', | ||
name='button_label_in_modal', | ||
field=models.CharField(blank=True, help_text='The text that will appear as on the button in the expiration modal', max_length=255, null=True), | ||
), | ||
migrations.AddField( | ||
model_name='historicalcustomeragreement', | ||
name='modal_header_text', | ||
field=models.CharField(blank=True, help_text='The bold text that will appear as the header in the expiration modal.', max_length=512, null=True), | ||
), | ||
migrations.AddField( | ||
model_name='historicalcustomeragreement', | ||
name='url_for_button_in_modal', | ||
field=models.CharField(blank=True, help_text='The URL that should underly the sole button in the expiration modal', max_length=512, null=True), | ||
), | ||
migrations.AlterField( | ||
model_name='customeragreement', | ||
name='expired_subscription_modal_messaging', | ||
field=models.TextField(blank=True, help_text='The content of a modal that will appear to learners upon subscription expiration. This text can be used for custom guidance per customer.', null=True), | ||
), | ||
migrations.AlterField( | ||
model_name='historicalcustomeragreement', | ||
name='expired_subscription_modal_messaging', | ||
field=models.TextField(blank=True, help_text='The content of a modal that will appear to learners upon subscription expiration. This text can be used for custom guidance per customer.', null=True), | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import bleach | ||
|
||
|
||
def sanitize_html(html_content): | ||
""" | ||
Sanitize HTML content to allow only safe tags and attributes, | ||
while disallowing JavaScript and unsafe protocols. | ||
""" | ||
# Define allowed tags and attributes | ||
allowed_tags = bleach.ALLOWED_TAGS # Allow all standard HTML tags | ||
allowed_attrs = {"*": ["className", "class", "style", "id"]} | ||
|
||
# Clean the HTML content | ||
sanitized_content = bleach.clean( | ||
html_content, | ||
tags=allowed_tags, | ||
attributes=allowed_attrs, | ||
strip=True, # Strip disallowed tags completely | ||
protocols=["http", "https"], # Only allow http and https URLs | ||
) | ||
|
||
# Use bleach.linkify to ensure no javascript: links in <a> tags | ||
sanitized_content = bleach.linkify( | ||
sanitized_content, | ||
callbacks=[ | ||
bleach.callbacks.nofollow | ||
], # Apply 'nofollow' to external links for safety | ||
) | ||
|
||
return sanitized_content |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -40,3 +40,4 @@ rules | |
simplejson | ||
zipp | ||
django-log-request-id | ||
bleach |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.