Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
voicerss_config = daconfig.get('voicerss', None)
if not voicerss_config or ('enable' in voicerss_config and not voicerss_config['enable']) or not ('key' in voicerss_config and voicerss_config['key']):
VOICERSS_ENABLED = False
else:
VOICERSS_ENABLED = True
ROOT = daconfig.get('root', '/')
if 'currency symbol' in daconfig:
docassemble.base.util.update_language_function('*', 'currency_symbol', lambda: daconfig['currency symbol'])
app.logger.warning("default sender is " + app.config['MAIL_DEFAULT_SENDER'] + "\n")
exit_page = daconfig.get('exitpage', '/')
if S3_ENABLED:
import docassemble.webapp.amazon
s3 = docassemble.webapp.amazon.s3object(s3_config)
SUPERVISORCTL = daconfig.get('supervisorctl', 'supervisorctl')
PACKAGE_CACHE = daconfig.get('packagecache', '/var/www/.cache')
WEBAPP_PATH = daconfig.get('webapp', '/usr/share/docassemble/webapp/docassemble.wsgi')
PACKAGE_DIRECTORY = daconfig.get('packages', '/usr/share/docassemble/local')
UPLOAD_DIRECTORY = daconfig.get('uploads', '/usr/share/docassemble/files')
FULL_PACKAGE_DIRECTORY = os.path.join(PACKAGE_DIRECTORY, 'lib', 'python2.7', 'site-packages')
LOG_DIRECTORY = daconfig.get('log', '/usr/share/docassemble/log')
for path in [FULL_PACKAGE_DIRECTORY, PACKAGE_CACHE, UPLOAD_DIRECTORY, LOG_DIRECTORY]:
if not os.path.isdir(path):
try:
os.makedirs(path)
except:
print "Could not create path: " + path
sys.exit(1)
if not os.access(path, os.W_OK):
print "Unable to create files in directory: " + path
VOICERSS_ENABLED = True
ROOT = daconfig.get('root', '/')
if 'currency symbol' in daconfig:
docassemble.base.util.update_language_function('*', 'currency_symbol', lambda: daconfig['currency symbol'])
app.logger.warning("default sender is " + app.config['MAIL_DEFAULT_SENDER'] + "\n")
exit_page = daconfig.get('exitpage', '/')
if S3_ENABLED:
import docassemble.webapp.amazon
s3 = docassemble.webapp.amazon.s3object(s3_config)
SUPERVISORCTL = daconfig.get('supervisorctl', 'supervisorctl')
PACKAGE_CACHE = daconfig.get('packagecache', '/tmp/docassemble-cache')
WEBAPP_PATH = daconfig.get('webapp', '/usr/share/docassemble/webapp/docassemble.wsgi')
PACKAGE_DIRECTORY = daconfig.get('packages', '/usr/share/docassemble/local')
UPLOAD_DIRECTORY = daconfig.get('uploads', '/usr/share/docassemble/files')
FULL_PACKAGE_DIRECTORY = os.path.join(PACKAGE_DIRECTORY, 'lib', 'python2.7', 'site-packages')
LOG_DIRECTORY = daconfig.get('log', '/usr/share/docassemble/log')
for path in [FULL_PACKAGE_DIRECTORY, PACKAGE_CACHE, UPLOAD_DIRECTORY, LOG_DIRECTORY]:
if not os.path.isdir(path):
try:
os.makedirs(path)
except:
print "Could not create path: " + path
sys.exit(1)
if not os.access(path, os.W_OK):
print "Unable to create files in directory: " + path
sys.exit(1)
if not os.access(WEBAPP_PATH, os.W_OK):
print "Unable to modify the timestamp of the WSGI file: " + WEBAPP_PATH
sys.exit(1)
def get_url_from_file_reference(file_reference, **kwargs):
if re.search(r'^http', file_reference):
return(file_reference)
if re.match('[0-9]+', file_reference):
file_number = file_reference
if can_access_file_number(file_number):
the_file = SavedFile(file_number)
url = the_file.url_for(**kwargs)
else:
url = 'about:blank'
else:
root = daconfig.get('root', '/')
fileroot = daconfig.get('fileserver', root)
if 'ext' in kwargs:
extn = kwargs['ext']
extn = re.sub(r'^\.', '', extn)
extn = '.' + extn
else:
extn = ''
parts = file_reference.split(':')
if len(parts) < 2:
parts = ['docassemble.base', file_reference]
parts[1] = re.sub(r'^data/static/', '', parts[1])
url = fileroot + 'packagestatic/' + parts[0] + '/' + parts[1] + extn
return(url)
match_brackets = re.compile('\[\'.*\'\]$')
match_inside_and_outside_brackets = re.compile('(.*)(\[\'[^\]]+\'\])$')
match_inside_brackets = re.compile('\[\'([^\]]+)\'\]')
APPLICATION_NAME = 'docassemble'
app.config['SQLALCHEMY_DATABASE_URI'] = alchemy_connect_string
app.config['USE_GOOGLE_LOGIN'] = False
app.config['USE_FACEBOOK_LOGIN'] = False
if 'oauth' in daconfig:
app.config['OAUTH_CREDENTIALS'] = daconfig['oauth']
if 'google' in daconfig['oauth'] and not ('enable' in daconfig['oauth']['google'] and daconfig['oauth']['google']['enable'] is False):
app.config['USE_GOOGLE_LOGIN'] = True
if 'facebook' in daconfig['oauth'] and not ('enable' in daconfig['oauth']['facebook'] and daconfig['oauth']['facebook']['enable'] is False):
app.config['USE_FACEBOOK_LOGIN'] = True
app.secret_key = daconfig.get('secretkey', '38ihfiFehfoU34mcq_4clirglw3g4o87')
#app.secret_key = ''.join(random.choice(string.ascii_uppercase + string.digits)
# for x in xrange(32))
word_file_list = daconfig.get('words', list())
if type(word_file_list) is not list:
word_file_list = [word_file_list]
for word_file in word_file_list:
logmessage("Reading from " + str(word_file))
file_info = get_info_from_file_reference(word_file)
if 'fullpath' in file_info:
with open(file_info['fullpath'], 'rU') as stream:
for document in yaml.load_all(stream):
if document and type(document) is dict:
for lang, words in document.iteritems():
if type(words) is dict:
docassemble.base.util.update_word_collection(lang, words)
app.config['USER_AFTER_FORGOT_PASSWORD_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_CHANGE_PASSWORD_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_CHANGE_USERNAME_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_CONFIRM_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_FORGOT_PASSWORD_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_LOGIN_ENDPOINT'] = 'index'
app.config['USER_AFTER_LOGOUT_ENDPOINT'] = 'index'
app.config['USER_AFTER_REGISTER_ENDPOINT'] = 'index'
app.config['USER_AFTER_RESEND_CONFIRM_EMAIL_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_RESET_PASSWORD_ENDPOINT'] = 'user.login'
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
app.config['USE_X_SENDFILE'] = daconfig.get('xsendfile', True)
PNG_RESOLUTION = daconfig.get('png_resolution', 300)
PNG_SCREEN_RESOLUTION = daconfig.get('png_screen_resolution', 72)
PDFTOPPM_COMMAND = daconfig.get('pdftoppm', None)
DEFAULT_LANGUAGE = daconfig.get('language', 'en')
DEFAULT_LOCALE = daconfig.get('locale', 'US.utf8')
DEFAULT_DIALECT = daconfig.get('dialect', 'us')
LOGSERVER = daconfig.get('log server', None)
docassemble.base.util.set_default_language(DEFAULT_LANGUAGE)
docassemble.base.util.set_default_locale(DEFAULT_LOCALE)
docassemble.base.util.set_default_dialect(DEFAULT_DIALECT)
docassemble.base.util.set_language(DEFAULT_LANGUAGE, dialect=DEFAULT_DIALECT)
docassemble.base.util.set_locale(DEFAULT_LOCALE)
docassemble.base.util.set_da_config(daconfig)
docassemble.base.util.update_locale()
message_sequence = dbtableprefix + 'message_id_seq'
audio_mimetype_table = {'mp3': 'audio/mpeg', 'ogg': 'audio/ogg'}
valid_voicerss_languages = {
'ca': ['es'],
app.config['USER_AUTO_LOGIN_AFTER_RESET_PASSWORD'] = False
app.config['USER_AFTER_FORGOT_PASSWORD_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_CHANGE_PASSWORD_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_CHANGE_USERNAME_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_CONFIRM_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_FORGOT_PASSWORD_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_LOGIN_ENDPOINT'] = 'index'
app.config['USER_AFTER_LOGOUT_ENDPOINT'] = 'index'
app.config['USER_AFTER_REGISTER_ENDPOINT'] = 'index'
app.config['USER_AFTER_RESEND_CONFIRM_EMAIL_ENDPOINT'] = 'user.login'
app.config['USER_AFTER_RESET_PASSWORD_ENDPOINT'] = 'user.login'
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
app.config['USE_X_SENDFILE'] = daconfig.get('xsendfile', True)
PNG_RESOLUTION = daconfig.get('png_resolution', 300)
PNG_SCREEN_RESOLUTION = daconfig.get('png_screen_resolution', 72)
PDFTOPPM_COMMAND = daconfig.get('pdftoppm', None)
DEFAULT_LANGUAGE = daconfig.get('language', 'en')
DEFAULT_LOCALE = daconfig.get('locale', 'US.utf8')
DEFAULT_DIALECT = daconfig.get('dialect', 'us')
LOGSERVER = daconfig.get('log server', None)
docassemble.base.util.set_default_language(DEFAULT_LANGUAGE)
docassemble.base.util.set_default_locale(DEFAULT_LOCALE)
docassemble.base.util.set_default_dialect(DEFAULT_DIALECT)
docassemble.base.util.set_language(DEFAULT_LANGUAGE, dialect=DEFAULT_DIALECT)
docassemble.base.util.set_locale(DEFAULT_LOCALE)
docassemble.base.util.set_da_config(daconfig)
docassemble.base.util.update_locale()
message_sequence = dbtableprefix + 'message_id_seq'
audio_mimetype_table = {'mp3': 'audio/mpeg', 'ogg': 'audio/ogg'}
valid_voicerss_languages = {
APPLICATION_NAME = 'docassemble'
app.config['SQLALCHEMY_DATABASE_URI'] = alchemy_connect_string
app.config['USE_GOOGLE_LOGIN'] = False
app.config['USE_FACEBOOK_LOGIN'] = False
if 'oauth' in daconfig:
app.config['OAUTH_CREDENTIALS'] = daconfig['oauth']
if 'google' in daconfig['oauth'] and not ('enable' in daconfig['oauth']['google'] and daconfig['oauth']['google']['enable'] is False):
app.config['USE_GOOGLE_LOGIN'] = True
if 'facebook' in daconfig['oauth'] and not ('enable' in daconfig['oauth']['facebook'] and daconfig['oauth']['facebook']['enable'] is False):
app.config['USE_FACEBOOK_LOGIN'] = True
app.secret_key = daconfig.get('secretkey', '38ihfiFehfoU34mcq_4clirglw3g4o87')
#app.secret_key = ''.join(random.choice(string.ascii_uppercase + string.digits)
# for x in xrange(32))
word_file_list = daconfig.get('words', list())
if type(word_file_list) is not list:
word_file_list = [word_file_list]
for word_file in word_file_list:
logmessage("Reading from " + str(word_file))
file_info = get_info_from_file_reference(word_file)
if 'fullpath' in file_info:
with open(file_info['fullpath'], 'rU') as stream:
for document in yaml.load_all(stream):
if document and type(document) is dict:
for lang, words in document.iteritems():
if type(words) is dict:
docassemble.base.util.update_word_collection(lang, words)
else:
logmessage("Error reading " + str(word_file) + ": words not in dictionary form.")
else:
logmessage("Error reading " + str(word_file) + ": yaml file not in dictionary form.")
keyname += 'screen-' + str(page) + '.png'
else:
keyname += 'page-' + str(page) + '.png'
elif extn:
keyname += '.' + extn
key = s3.get_key(keyname)
if key.exists():
return(key.generate_url(3600))
else:
return('about:blank')
else:
if extn is None:
extn = ''
else:
extn = '.' + extn
root = daconfig.get('root', '/')
fileroot = daconfig.get('fileserver', root)
if self.section == 'files':
if 'page' in kwargs and kwargs['page']:
page = re.sub(r'[^0-9]', '', str(kwargs['page']))
size = kwargs.get('size', 'page')
url = fileroot + 'uploadedpage'
if size == 'screen':
url += 'screen'
url += '/' + str(self.file_number) + '/' + str(page)
else:
url = fileroot + 'uploadedfile/' + str(self.file_number) + extn
else:
url = 'about:blank'
return(url)
def finalize(self):
'pt': ['br', 'pt'],
'ru': ['ru'],
'es': ['mx', 'es'],
'sv': ['se']
}
voicerss_config = daconfig.get('voicerss', None)
if not voicerss_config or ('enable' in voicerss_config and not voicerss_config['enable']) or not ('key' in voicerss_config and voicerss_config['key']):
VOICERSS_ENABLED = False
else:
VOICERSS_ENABLED = True
ROOT = daconfig.get('root', '/')
if 'currency symbol' in daconfig:
docassemble.base.util.update_language_function('*', 'currency_symbol', lambda: daconfig['currency symbol'])
app.logger.warning("default sender is " + app.config['MAIL_DEFAULT_SENDER'] + "\n")
exit_page = daconfig.get('exitpage', '/')
if S3_ENABLED:
import docassemble.webapp.amazon
s3 = docassemble.webapp.amazon.s3object(s3_config)
SUPERVISORCTL = daconfig.get('supervisorctl', 'supervisorctl')
PACKAGE_CACHE = daconfig.get('packagecache', '/var/www/.cache')
WEBAPP_PATH = daconfig.get('webapp', '/usr/share/docassemble/webapp/docassemble.wsgi')
PACKAGE_DIRECTORY = daconfig.get('packages', '/usr/share/docassemble/local')
UPLOAD_DIRECTORY = daconfig.get('uploads', '/usr/share/docassemble/files')
FULL_PACKAGE_DIRECTORY = os.path.join(PACKAGE_DIRECTORY, 'lib', 'python2.7', 'site-packages')
LOG_DIRECTORY = daconfig.get('log', '/usr/share/docassemble/log')
for path in [FULL_PACKAGE_DIRECTORY, PACKAGE_CACHE, UPLOAD_DIRECTORY, LOG_DIRECTORY]:
if not os.path.isdir(path):
try:
DEBUG = daconfig.get('debug', False)
docassemble.base.parse.debug = DEBUG
if DEBUG:
from pygments import highlight
from pygments.lexers import YamlLexer
from pygments.formatters import HtmlFormatter
app.debug = False
default_yaml_filename = daconfig.get('default_interview', 'docassemble.demo:data/questions/questions.yml')
if 'mail' not in daconfig:
daconfig['mail'] = dict()
os.environ['PYTHON_EGG_CACHE'] = tempfile.mkdtemp()
app.config['APP_NAME'] = daconfig.get('appname', 'docassemble')
app.config['BRAND_NAME'] = daconfig.get('brandname', daconfig.get('appname', 'docassemble'))
app.config['MAIL_USERNAME'] = daconfig['mail'].get('username', None)
app.config['MAIL_PASSWORD'] = daconfig['mail'].get('password', None)
app.config['MAIL_DEFAULT_SENDER'] = daconfig['mail'].get('default_sender', None)
app.config['MAIL_SERVER'] = daconfig['mail'].get('server', 'localhost')
app.config['MAIL_PORT'] = daconfig['mail'].get('port', 25)
app.config['MAIL_USE_SSL'] = daconfig['mail'].get('use_ssl', False)
app.config['MAIL_USE_TLS'] = daconfig['mail'].get('use_tls', False)
#app.config['ADMINS'] = [daconfig.get('admin_address', None)]
app.config['APP_SYSTEM_ERROR_SUBJECT_LINE'] = app.config['APP_NAME'] + " system error"
app.config['APPLICATION_ROOT'] = daconfig.get('root', '/')
app.config['CSRF_ENABLED'] = False
app.config['USER_APP_NAME'] = app.config['APP_NAME']
app.config['USER_SEND_PASSWORD_CHANGED_EMAIL'] = False
app.config['USER_SEND_REGISTERED_EMAIL'] = False
app.config['USER_SEND_USERNAME_CHANGED_EMAIL'] = False
app.config['USER_ENABLE_EMAIL'] = True