Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
email_addresses.append(part_two)
the_role_id = None
for role in Role.query.order_by('id'):
if role.id == int(invite_form.role_id.data) and role.name != 'admin' and role.name != 'cron':
the_role_id = role.id
if the_role_id is None:
the_role_id = user_role.id
has_error = False
for email_address in email_addresses:
user, user_email = user_manager.find_user_by_email(email_address)
if user:
flash(word("A user with that e-mail has already registered") + " (" + email_address + ")", "error")
has_error = True
continue
else:
user_invite = MyUserInvitation(email=email_address, role_id=the_role_id, invited_by_user_id=current_user.id)
db.session.add(user_invite)
db.session.commit()
token = user_manager.generate_token(user_invite.id)
accept_invite_link = url_for('user.register',
token=token,
_external=True)
user_invite.token = token
db.session.commit()
#docassemble.webapp.daredis.clear_user_cache()
try:
logmessage("Trying to send e-mail to " + text_type(user_invite.email))
if user is None:
if daconfig.get('confirm registration', False):
self.email.errors = list()
self.email.errors.append(word("Incorrect Email and/or Password"))
self.password.errors = list()
self.password.errors.append(word("Incorrect Email and/or Password"))
else:
self.email.errors = list(self.email.errors)
self.email.errors.append(word("Account did not exist."))
return False
if user and (user.password is None or (user.social_id is not None and not user.social_id.startswith('local$'))):
self.email.errors = list(self.email.errors)
if user.social_id.startswith('google$'):
self.email.errors.append(word("You need to log in with Google."))
elif user.social_id.startswith('azure$'):
self.email.errors.append(word("You need to log in with Azure."))
elif user.social_id.startswith('auth0$'):
self.email.errors.append(word("You need to log in with Auth0."))
elif user.social_id.startswith('twitter$'):
self.email.errors.append(word("You need to log in with Twitter."))
elif user.social_id.startswith('facebook$'):
self.email.errors.append(word("You need to log in with Facebook."))
else:
self.email.errors.append(word("You cannot log in this way."))
return False
#sys.stderr.write("Trying super validate\n")
result = super(MySignInForm, self).validate()
#sys.stderr.write("Super validate response was " + repr(result) + "\n")
if result is False:
r.incr(key)
r.expire(key, daconfig['ban period'])
elif failed_attempts is not None:
def case_id_in_caption(self, **kwargs):
"""Returns the text for the case ID that will appear in the case
caption.
"""
result = run_hook('case', self, 'case_id_in_caption', self.court.jurisdiction, **kwargs)
if result is None:
if hasattr(self, 'case_id'):
return word('Case No.') + " " + self.case.case_id
else:
return word('Case No.')
return result
def determine_court(self, **kwargs):
if field.datatype == 'camera':
accept = ' accept="image/*;capture=camera"'
elif field.datatype == 'camcorder':
accept = ' accept="video/*;capture=camcorder"'
elif field.datatype == 'microphone':
accept = ' accept="audio/*;capture=microphone"'
else:
accept = ''
maximagesize = ''
if 'max_image_size' in status.extras:
if status.extras['max_image_size']:
maximagesize = 'data-maximagesize="' + str(int(status.extras['max_image_size'])) + '" '
elif status.question.interview.max_image_size:
maximagesize = 'data-maximagesize="' + str(int(status.question.interview.max_image_size)) + '" '
if embedded:
output += '<span class="inline-error-wrapper"><input accept="" id="' + escape_id(saveas_string) + '" name="' + escape_id(saveas_string) + '" class="file-embedded" type="file" alt="' + word("></span>'
else:
output += '<input accept="" id="' + escape_id(saveas_string) + '" name="' + escape_id(saveas_string) + '" data-preview-file-type="text" data-show-upload="false" class="dafile" type="file" alt="' + word("><label id="' + escape_id(saveas_string) + '-error" class="da-has-error" for="' + escape_id(saveas_string) + '" style="display: none;"></label>'
#output += '<div data-provides="fileinput" class="fileinput fileinput-new input-group"><div data-trigger="fileinput" class="form-control"><i class="glyphicon glyphicon-file fileinput-exists"></i><span class="fileinput-filename"></span></div><span class="input-group-addon btn btn-default btn-file"><span class="fileinput-new">' + word('Select file') + '</span><span class="fileinput-exists">' + word('Change') + '</span><input id="' + escape_id(saveas_string) + '" name="' + escape_id(saveas_string) + '" type="file"></span><a data-dismiss="fileinput" class="input-group-addon btn btn-default fileinput-exists" href="#">' + word('Remove') + '</a></div>\n'
elif field.datatype == 'range':
ok = True
for key in ['min', 'max']:
if not (hasattr(field, 'extras') and key in field.extras and key in status.extras and field.number in status.extras[key]):
ok = False
if ok:
if defaultvalue is not None and type(defaultvalue) in [str, unicode, int, bool, float]:
the_default = ' data-slider-value="' + str(defaultvalue) + '"'
else:
the_default = ' data-slider-value="' + str(int((float(status.extras['max'][field.number]) + float(status.extras['min'][field.number]))/2)) + '"'
if 'step' in field.extras and 'step' in status.extras and field.number in status.extras['step']:
the_step = ' data-slider-step="' + str(status.extras['step'][field.number]) + '"'
else:
submit = SubmitField(word('Save'))
class PullPlaygroundPackage(FlaskForm):
github_url = StringField(word('GitHub URL'))
github_branch = SelectField(word('GitHub Branch'))
pypi = StringField(word('PyPI package'))
pull = SubmitField(word('Pull'))
cancel = SubmitField(word('Cancel'))
class PlaygroundPackagesForm(FlaskForm):
original_file_name = StringField(word('Original Name'))
file_name = StringField(word('Package Name'), validators=[validators.Length(min=1, max=50),
validators.Required(word('Package Name is required')), validate_package_name])
license = StringField(word('License'), default='The MIT License (MIT)', validators=[validators.Length(min=0, max=255)])
author_name = StringField(word('Author Name'), validators=[validators.Length(min=0, max=255)])
author_email = StringField(word('Author E-mail'), validators=[validators.Length(min=0, max=255)])
description = StringField(word('Description'), validators=[validators.Length(min=0, max=255)], default="A docassemble extension.")
version = StringField(word('Version'), validators=[validators.Length(min=0, max=255)], default="0.0.1")
url = StringField(word('URL'), validators=[validators.Length(min=0, max=255)], default="")
dependencies = SelectMultipleField(word('Dependencies'))
interview_files = SelectMultipleField(word('Interview files'))
template_files = SelectMultipleField(word('Template files'))
module_files = SelectMultipleField(word('Modules'))
static_files = SelectMultipleField(word('Static files'))
sources_files = SelectMultipleField(word('Source files'))
readme = TextAreaField(word('README file'), default='')
github_branch = SelectField(word('Branch'))
github_branch_new = StringField(word('Name of new branch'))
commit_message = StringField(word('Commit message'), default="")
submit = SubmitField(word('Save'))
download = SubmitField(word('Download'))
install = SubmitField(word('Install'))
submit = SubmitField(word('Verify'))
class MFAVerifySMSSetupForm(FlaskForm):
verification_code = StringField(word('Verification code'))
submit = SubmitField(word('Verify'))
class MyResendConfirmEmailForm(FlaskForm):
email = StringField(word('Your e-mail address'), validators=[
validators.DataRequired(word('E-mail address is required')),
validators.Email(word('Invalid e-mail address')),
])
submit = SubmitField(word('Send confirmation email'))
class ManageAccountForm(FlaskForm):
confirm = StringField(word('Type \"delete my account\" here to confirm that you want to delete your account.'), [validators.AnyOf([word("delete my account")], message=word('Since you did not type \"delete my account\" I did not delete your account.'))])
delete = SubmitField(word('Delete Account'))
if status.extras['required'][field.number]:
qoutput += "\n" + word('Please send an image or file.')
else:
qoutput += "\n" + word('Please send an image or file, or type skip.')
elif hasattr(field, 'datatype') and field.datatype in ['files']:
if label:
qoutput += "\n" + label + ":" + next_label
if status.extras['required'][field.number]:
qoutput += "\n" + word('Please send one or more images.')
else:
qoutput += "\n" + word('Please send one or more images, or type skip.')
elif hasattr(field, 'datatype') and field.datatype in ['camcorder']:
if label:
qoutput += "\n" + label + ":" + next_label
if status.extras['required'][field.number]:
qoutput += "\n" + word('Please send a video.')
else:
qoutput += "\n" + word('Please send a video, or type skip.')
elif hasattr(field, 'datatype') and field.datatype in ['microphone']:
if label:
qoutput += "\n" + label + ":" + next_label
if status.extras['required'][field.number]:
qoutput += "\n" + word('Please send an audio clip.')
else:
qoutput += "\n" + word('Please send an audio clip, or type skip.')
elif hasattr(field, 'datatype') and field.datatype in ['number', 'float', 'integer']:
if label:
qoutput += "\n" + label + ":" + next_label
if status.extras['required'][field.number]:
qoutput += "\n" + word('Type a number.')
else:
qoutput += "\n" + word('Type a number, or type skip.')
else:
logmessage("Code matched")
if result is False:
logmessage("Problem with form")
r.incr(key)
r.expire(key, 86400)
elif failed_attempts is not None:
r.delete(key)
return result
class MFASetupForm(FlaskForm):
verification_code = StringField(word('Verification code'))
submit = SubmitField(word('Verify'))
class MFALoginForm(FlaskForm):
verification_code = StringField(word('Verification code'))
next = HiddenField()
submit = SubmitField(word('Verify'))
class MFAReconfigureForm(FlaskForm):
reconfigure = SubmitField(word('Reconfigure'))
disable = SubmitField(word('Disable'))
cancel = SubmitField(word('Cancel'))
class MFAChooseForm(FlaskForm):
auth = SubmitField(word('App'))
sms = SubmitField(word('SMS'))
cancel = SubmitField(word('Cancel'))
class MFASMSSetupForm(FlaskForm):
phone_number = StringField(word('Phone number'), [validators.Length(min=5, max=255)])
submit = SubmitField(word('Verify'))
validation_rules['rules']['_ignore' + str(field.number)] = dict(require_from_group=[1, '.dafield' + str(field.number)])
validation_rules['messages']['_ignore' + str(field.number)] = dict(require_from_group=word("Please select one."))
validation_rules['groups'][the_saveas] = " ".join(name_list + ['_ignore' + str(field.number)])
validation_rules['ignore'] = None
if hasattr(field, 'inputtype') and field.inputtype in ['yesnoradio', 'noyesradio']:
validation_rules['ignore'] = None
if field.datatype in ['radio', 'object_radio']:
validation_rules['ignore'] = None
if field.datatype == 'date':
validation_rules['rules'][the_saveas]['date'] = True
validation_rules['messages'][the_saveas]['date'] = word("You need to enter a valid date.")
if field.datatype == 'email':
validation_rules['rules'][the_saveas]['email'] = True
if status.extras['required'][field.number]:
validation_rules['rules'][the_saveas]['minlength'] = 1
validation_rules['messages'][the_saveas]['minlength'] = word("This field is required.")
validation_rules['messages'][the_saveas]['email'] = word("You need to enter a complete e-mail address.")
if field.datatype in ['number', 'currency', 'float', 'integer']:
validation_rules['rules'][the_saveas]['number'] = True
validation_rules['messages'][the_saveas]['number'] = word("You need to enter a number.")
#sys.stderr.write("Considering adding validation rule\n")
for key in ['min', 'max']:
if hasattr(field, 'extras') and key in field.extras and key in status.extras:
#sys.stderr.write("Adding validation rule for " + str(key) + "\n")
validation_rules['rules'][the_saveas][key] = float(status.extras[key][field.number])
if key == 'min':
validation_rules['messages'][the_saveas][key] = word("You need to enter a number that is at least") + " " + str(status.extras[key][field.number])
elif key == 'max':
validation_rules['messages'][the_saveas][key] = word("You need to enter a number that is at most") + " " + str(status.extras[key][field.number])
if (field.datatype in ['files', 'file', 'camera', 'camcorder', 'microphone']):
enctype_string = ' enctype="multipart/form-data"'
files.append(field.saveas)
def read_fields_pdftk(pdffile):
output = check_output([PDFTK_PATH, pdffile, 'dump_data_fields']).decode()
fields = list()
if not len(output) > 0:
return None
for field in yaml.load_all(output, Loader=yaml.FullLoader):
if 'FieldType' in field and field['FieldType'] == 'Button':
default = "No"
else:
default = word("something")
if 'FieldName' in field:
fields.append((field['FieldName'], default))
return fields