28 lines
1.0 KiB
Python
28 lines
1.0 KiB
Python
def survey_password_variables(survey_spec):
|
|
vars = []
|
|
# Get variables that are type password
|
|
if 'spec' not in survey_spec:
|
|
return vars
|
|
for survey_element in survey_spec['spec']:
|
|
if 'type' in survey_element and survey_element['type'] == 'password':
|
|
vars.append(survey_element['variable'])
|
|
return vars
|
|
|
|
|
|
def migrate_survey_passwords(apps, schema_editor):
|
|
'''Take the output of the Job Template password list for all that
|
|
have a survey enabled, and then save it into the job model.
|
|
'''
|
|
Job = apps.get_model('main', 'Job')
|
|
for job in Job.objects.iterator():
|
|
if not job.job_template:
|
|
continue
|
|
jt = job.job_template
|
|
if jt.survey_spec is not None and jt.survey_enabled:
|
|
password_list = survey_password_variables(jt.survey_spec)
|
|
hide_password_dict = {}
|
|
for password in password_list:
|
|
hide_password_dict[password] = "$encrypted$"
|
|
job.survey_passwords = hide_password_dict
|
|
job.save()
|