From 7dbaa28539a23c99586d087577964fb13ca809d8 Mon Sep 17 00:00:00 2001 From: jiangweidong Date: Wed, 30 Aug 2023 11:28:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3CAS=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E7=99=BB=E9=99=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jumpserver/conf.py | 4 +-- .../0009_alter_cas_username_attribute.py | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 apps/settings/migrations/0009_alter_cas_username_attribute.py diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 60d665a04..718f8fe7e 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -333,9 +333,9 @@ class Config(dict): 'CAS_ROOT_PROXIED_AS': 'https://example.com', 'CAS_LOGOUT_COMPLETELY': True, 'CAS_VERSION': 3, - 'CAS_USERNAME_ATTRIBUTE': 'uid', + 'CAS_USERNAME_ATTRIBUTE': 'cas:user', 'CAS_APPLY_ATTRIBUTES_TO_USER': False, - 'CAS_RENAME_ATTRIBUTES': {'uid': 'username'}, + 'CAS_RENAME_ATTRIBUTES': {'cas:user': 'username'}, 'CAS_CREATE_USER': True, 'AUTH_SSO': False, diff --git a/apps/settings/migrations/0009_alter_cas_username_attribute.py b/apps/settings/migrations/0009_alter_cas_username_attribute.py new file mode 100644 index 000000000..562da4950 --- /dev/null +++ b/apps/settings/migrations/0009_alter_cas_username_attribute.py @@ -0,0 +1,32 @@ +# Generated by Django 3.2.19 on 2023-06-30 10:37 +import json + +from django.db import migrations + + +def migrate_cas_setting(apps, schema_editor): + setting_model = apps.get_model('settings', 'Setting') + obj = setting_model.objects.filter(name='CAS_RENAME_ATTRIBUTES').first() + if obj: + try: + value = json.loads(obj.value) + except Exception: + print("Invalid telnet regex setting, skip") + return + + if value.pop('uid', None): + setting_model.objects.filter(name='CAS_USERNAME_ATTRIBUTE').update(value='"cas:user"') + value['cas:user'] = 'username' + obj.value = json.dumps(value) + obj.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('settings', '0008_alter_setting_options'), + ] + + operations = [ + migrations.RunPython(migrate_cas_setting), + ]