mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 01:17:37 -02:30
add generic setting method
This commit is contained in:
@@ -1,53 +1,12 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
from django.utils import timezone
|
|
||||||
from django.db import migrations
|
from django.db import migrations
|
||||||
|
from awx.conf.migrations import _rename_setting
|
||||||
|
|
||||||
|
|
||||||
def copy_session_settings(apps, schema_editor):
|
def copy_session_settings(apps, schema_editor):
|
||||||
|
_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')
|
||||||
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())
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|||||||
37
awx/conf/migrations/_rename_setting.py
Normal file
37
awx/conf/migrations/_rename_setting.py
Normal file
@@ -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()
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@ SESSION_COOKIE_SECURE = True
|
|||||||
|
|
||||||
# Seconds before sessions expire.
|
# Seconds before sessions expire.
|
||||||
# Note: This setting may be overridden by database settings.
|
# 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.
|
# Maximum number of per-user valid, concurrent sessions.
|
||||||
# -1 is unlimited
|
# -1 is unlimited
|
||||||
|
|||||||
Reference in New Issue
Block a user