diff --git a/awx/conf/migrations/0005_v330_rename_two_session_settings.py b/awx/conf/migrations/0005_v330_rename_two_session_settings.py index 21eecfb556..f7077561bd 100644 --- a/awx/conf/migrations/0005_v330_rename_two_session_settings.py +++ b/awx/conf/migrations/0005_v330_rename_two_session_settings.py @@ -1,53 +1,12 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.utils import timezone from django.db import migrations - - +from awx.conf.migrations import _rename_setting + + def copy_session_settings(apps, schema_editor): - - - def rename_setting(old_key, new_key): - Setting = apps.get_model('conf', 'Setting') - - if Setting.objects.filter(key=new_key).exists(): - logger.error('Setting', new_key, 'unexpectedly exists before this migration, \ - it will be replaced by the value of the', AUTH_TOKEN_EXPIRATION, 'setting.') - - - - - Setting = apps.get_model('conf', 'Setting') - - mapping = { - 'AUTH_TOKEN_EXPIRATION': 'SESSION_COOKIE_AGE', - 'AUTH_TOKEN_PER_USER': 'SESSIONS_PER_USER' -} -for before, after in mapping.items(): - ... - - - for setting_name in mapping: - old_setting = Setting.objects.filter(key=setting_name).first() - if - - if Setting.objects.filter(key='SESSION_COOKIE_AGE').exists(): - logger.error('Setting SESSION_COOKIE_AGE unexpectedly exists before this migration, it will be replaced by AUTH_TOKEN_EXPIRATION setting') - - - if Setting.objects.filter(key='AUTH_TOKEN_EXPIRATION').exists(): - Setting.objects.filter(key='SESSION_COOKIE_AGE').delete() - Setting.objects.get_or_create(key='SESSION_COOKIE_AGE', - value=Setting.objects.get(key='AUTH_TOKEN_EXPIRATION').value, - created=timezone.now(), - modified=timezone.now()) - - if Setting.objects.filter(key='AUTH_TOKEN_PER_USER').exists(): - Setting.objects.filter(key='SESSIONS_PER_USER').delete() - Setting.objects.get_or_create(key='SESSIONS_PER_USER', - value=Setting.objects.get(key='AUTH_TOKEN_PER_USER').value, - created=timezone.now(), - modified=timezone.now()) + _rename_setting.rename_setting(apps, schema_editor, old_key='AUTH_TOKEN_PER_USER', new_key='SESSION_COOKIE_AGE') + _rename_setting.rename_setting(apps, schema_editor, old_key='AUTH_TOKEN_EXPIRATION', new_key='SESSIONS_PER_USER') class Migration(migrations.Migration): diff --git a/awx/conf/migrations/_rename_setting.py b/awx/conf/migrations/_rename_setting.py new file mode 100644 index 0000000000..69e95630da --- /dev/null +++ b/awx/conf/migrations/_rename_setting.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals +import logging + +logger = logging.getLogger('awx.conf.settings') + +__all__ = ['rename_setting'] + + +def rename_setting(apps, schema_editor, old_key, new_key): + + Setting = apps.get_model('conf', 'Setting') + + if Setting.objects.filter(key=new_key).exists(): + logger.error('Setting', new_key, 'unexpectedly exists before this migration, \ + it will be replaced by the value of the', old_key, 'setting.') + Setting.objects.filter(key=new_key).delete() + + old_setting = Setting.objects.filter(key=old_key).first() + if old_setting is not None: + Setting.objects.create(key=new_key, value=old_setting.value) + Setting.objects.filter(key=old_key).delete() + +def reverse_rename_setting(apps, schema_editor, old_key, new_key): + + Setting = apps.get_model('conf', 'Setting') + + if Setting.objects.filter(key=old_key).exists(): + logger.error('Setting', old_key, 'unexpectedly exists before this migration, \ + it will be replaced by the value of the', new_key, 'setting.') + Setting.objects.filter(key=old_key).delete() + + new_setting = Setting.objects.filter(key=new_key).first() + if new_setting is not None: + Setting.objects.create(key=old_key, value=new_setting.value) + Setting.objects.filter(key=new_key).delete() + \ No newline at end of file diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index 6d1374fa6e..b159ef3d61 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -200,7 +200,7 @@ SESSION_COOKIE_SECURE = True # Seconds before sessions expire. # Note: This setting may be overridden by database settings. -SESSION_COOKIE_AGE = 1800 +SESSION_COOKIE_AGE = 1209600 # Maximum number of per-user valid, concurrent sessions. # -1 is unlimited