<s> """<STR_LIT>""" <EOL> __author__ = '<STR_LIT>' <EOL> __copyright__ = '<STR_LIT>' <EOL> __licence__ = '<STR_LIT>' <EOL> __email__ = '<STR_LIT>' <EOL> from django . utils . html import strip_tags <EOL> from django import forms <EOL> import bleach <EOL> def sanitize ( t , allow_html = True , full_html = False ) : <EOL> """<STR_LIT>""" <EOL> if not t : <EOL> return t <EOL> if not allow_html : <EOL> return strip_tags ( t ) <EOL> allowed_tags = bleach . ALLOWED_TAGS + [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:p>' , '<STR_LIT:u>' , '<STR_LIT:s>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> if full_html : <EOL> allowed_tags += [ '<STR_LIT>' ] <EOL> allowed_attributes = { <EOL> '<STR_LIT:a>' : [ '<STR_LIT>' , '<STR_LIT:title>' , '<STR_LIT:name>' , '<STR_LIT:target>' , '<STR_LIT:class>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:title>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:title>' ] , <EOL> '<STR_LIT:p>' : [ '<STR_LIT>' , '<STR_LIT:class>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:src>' , '<STR_LIT>' , '<STR_LIT:title>' , '<STR_LIT:class>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:src>' , '<STR_LIT>' , '<STR_LIT:width>' , '<STR_LIT:class>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:class>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:class>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT:class>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT:class>' ] , <EOL> } <EOL> allowed_styles = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:width>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:float>' ] <EOL> return bleach . clean ( t , tags = allowed_tags , attributes = allowed_attributes , styles = allowed_styles ) <EOL> class ModelSanitizeForm ( forms . ModelForm ) : <EOL> """<STR_LIT>""" <EOL> def clean ( self ) : <EOL> """<STR_LIT>""" <EOL> cleaned_data = super ( ModelSanitizeForm , self ) . clean ( ) <EOL> for field in self . Meta . sanitize : <EOL> if field in cleaned_data : <EOL> cleaned_data [ field ] = sanitize ( cleaned_data [ field ] , allow_html = False ) <EOL> return cleaned_data </s>
