Demo displays user preferred locale

This commit is contained in:
Éloi Rivard 2022-12-04 11:53:37 +01:00
parent b8634900e3
commit 9bf9c43677
10 changed files with 30 additions and 5 deletions

View file

@ -183,7 +183,7 @@ EMAIL = "{{ user.mail[0] }}"
GIVEN_NAME = "{{ user.givenName[0] }}"
FAMILY_NAME = "{{ user.sn[0] }}"
PREFERRED_USERNAME = "{{ user.displayName }}"
LOCALE = "{{ user.preferredLanguage[0] }}"
LOCALE = "{{ user.preferredLanguage }}"
ADDRESS = "{{ user.postalAddress[0] }}"
PICTURE = "{% if user.jpegPhoto %}{{ url_for('account.photo', uid=user.uid[0], field='jpegPhoto', _external=True) }}{% endif %}"
WEBSITE = "{{ user.labeledURI[0] }}"

View file

@ -94,6 +94,13 @@
</div>
{% endif %}
{% if user.locale %}
<div class="extra content">
<i class="flag icon" title="locale"></i>
{{ user.locale }}
</div>
{% endif %}
{% if user.groups %}
<div class="extra content">
<i class="user users icon" title="Groups"></i>

View file

@ -189,7 +189,7 @@ EMAIL = "{{ user.mail[0] }}"
GIVEN_NAME = "{{ user.givenName[0] }}"
FAMILY_NAME = "{{ user.sn[0] }}"
PREFERRED_USERNAME = "{{ user.displayName }}"
LOCALE = "{{ user.preferredLanguage[0] }}"
LOCALE = "{{ user.preferredLanguage }}"
ADDRESS = "{{ user.postalAddress[0] }}"
PICTURE = "{% if user.jpegPhoto %}{{ url_for('account.photo', uid=user.uid[0], field='jpegPhoto', _external=True) }}{% endif %}"
WEBSITE = "{{ user.labeledURI[0] }}"

View file

@ -190,7 +190,7 @@ EMAIL = "{{ user.mail[0] }}"
GIVEN_NAME = "{{ user.givenName[0] }}"
FAMILY_NAME = "{{ user.sn[0] }}"
PREFERRED_USERNAME = "{{ user.displayName }}"
LOCALE = "{{ user.preferredLanguage[0] }}"
LOCALE = "{{ user.preferredLanguage }}"
ADDRESS = "{{ user.postalAddress[0] }}"
PICTURE = "{% if user.jpegPhoto %}{{ url_for('account.photo', uid=user.uid[0], field='jpegPhoto', _external=True) }}{% endif %}"
WEBSITE = "{{ user.labeledURI[0] }}"

View file

@ -208,7 +208,7 @@ def configuration(slapd_server, smtpd, keypair_path):
"GIVEN_NAME": "{{ user.givenName[0] }}",
"FAMILY_NAME": "{{ user.sn[0] }}",
"PREFERRED_USERNAME": "{{ user.displayName }}",
"LOCALE": "{{ user.preferredLanguage[0] }}",
"LOCALE": "{{ user.preferredLanguage }}",
"PICTURE": "{% if user.jpegPhoto %}{{ url_for('account.photo', uid=user.uid[0], field='jpegPhoto', _external=True) }}{% endif %}",
},
},
@ -252,6 +252,7 @@ def user(app, slapd_connection):
mail="john@doe.com",
userPassword="{SSHA}fw9DYeF/gHTHuVMepsQzVYAkffGcU8Fz",
displayName="Johnny",
preferredLanguage="en",
)
u.save()
yield u

View file

@ -97,6 +97,7 @@ def test_authorization_code_flow(
"email": "john@doe.com",
"sub": "user",
"groups": [],
"locale": "en",
} == res.json
for consent in consents:
@ -164,6 +165,7 @@ def test_authorization_code_flow_preconsented(
"family_name": "Doe",
"preferred_username": "Johnny",
"sub": "user",
"locale": "en",
} == res.json
for consent in consents:
@ -235,6 +237,7 @@ def test_logout_login(testclient, logged_user, client):
"family_name": "Doe",
"preferred_username": "Johnny",
"sub": "user",
"locale": "en",
} == res.json
for consent in consents:
@ -317,6 +320,7 @@ def test_refresh_token(testclient, user, client):
"family_name": "Doe",
"preferred_username": "Johnny",
"sub": "user",
"locale": "en",
} == res.json
for consent in consents:
@ -384,6 +388,7 @@ def test_code_challenge(testclient, logged_user, client):
"family_name": "Doe",
"preferred_username": "Johnny",
"sub": "user",
"locale": "en",
} == res.json
client.token_endpoint_auth_method = "client_secret_basic"
@ -712,6 +717,7 @@ def test_authorization_code_request_scope_too_large(
"family_name": "Doe",
"preferred_username": "Johnny",
"sub": "user",
"locale": "en",
} == res.json
for consent in consents:

View file

@ -51,6 +51,7 @@ def test_oauth_hybrid(testclient, slapd_connection, user, client):
"family_name": "Doe",
"preferred_username": "Johnny",
"sub": "user",
"locale": "en",
} == res.json
@ -97,4 +98,5 @@ def test_oidc_hybrid(
"family_name": "Doe",
"preferred_username": "Johnny",
"sub": "user",
"locale": "en",
} == res.json

View file

@ -47,6 +47,7 @@ def test_oauth_implicit(testclient, user, client):
"sub": "user",
"family_name": "Doe",
"preferred_username": "Johnny",
"locale": "en",
} == res.json
client.grant_types = ["code"]
@ -104,6 +105,7 @@ def test_oidc_implicit(testclient, keypair, user, client, other_client):
"sub": "user",
"family_name": "Doe",
"preferred_username": "Johnny",
"locale": "en",
} == res.json
client.grant_types = ["code"]
@ -165,6 +167,7 @@ def test_oidc_implicit_with_group(
"family_name": "Doe",
"preferred_username": "Johnny",
"groups": ["foo"],
"locale": "en",
} == res.json
client.grant_types = ["code"]

View file

@ -34,6 +34,7 @@ def test_password_flow_basic(testclient, user, client):
"family_name": "Doe",
"preferred_username": "Johnny",
"groups": [],
"locale": "en",
} == res.json
@ -72,4 +73,5 @@ def test_password_flow_post(testclient, user, client):
"family_name": "Doe",
"preferred_username": "Johnny",
"groups": [],
"locale": "en",
} == res.json

View file

@ -2,7 +2,8 @@ from canaille.models import User
def test_preferred_language(testclient, logged_user):
assert logged_user.preferredLanguage is None
logged_user.preferredLanguage = None
logged_user.save()
res = testclient.get("/profile/user", status=200)
assert res.form["preferredLanguage"].value == "auto"
@ -35,6 +36,9 @@ def test_preferred_language(testclient, logged_user):
def test_language_config(testclient, logged_user):
logged_user.preferredLanguage = None
logged_user.save()
res = testclient.get("/profile/user", status=200)
assert "My profile" in res.text
assert "Mon profil" not in res.text