Skip to content
Snippets Groups Projects
Commit a45ed7e7 authored by Benjamin Bertrand's avatar Benjamin Bertrand
Browse files

Set display_name to username when empty

Modification performed for service account

JIRA INFRA-2909 #action In Progress
parent 4c5accb5
No related branches found
No related tags found
No related merge requests found
......@@ -101,7 +101,7 @@ def save_user(dn, username, data, memberships):
if user is None:
user = User(
username=username,
display_name=utils.attribute_to_string(data["cn"]),
display_name=utils.attribute_to_string(data["cn"]) or username,
email=utils.attribute_to_string(data["mail"]),
)
# Always update the user groups to keep them up-to-date
......
......@@ -175,8 +175,19 @@ def patch_ldap_authenticate(monkeypatch):
response.user_groups = [{"cn": "CSEntry Admin"}]
elif username == "audit" and password == "auditpasswd":
response.status = AuthenticationResponseStatus.success
response.user_info = {"cn": "Auditor User", "mail": "audit@example.com"}
response.user_groups = [{"cn": "CSEntry Auditor"}]
response.user_dn = "uid=audit,ou=Service accounts,dc=esss,dc=lu,dc=se"
response.user_info = {
"uid": ["audit"],
"cn": [],
"mail": [],
"dn": "uid=audit,ou=Service accounts,dc=esss,dc=lu,dc=se",
}
response.user_groups = [
{
"cn": ["CSEntry Auditor"],
"dn": "cn=CSEntry Auditor,ou=ICS,ou=Groups,dc=esss,dc=lu,dc=se",
}
]
elif username == "user_rw" and password == "userrw":
response.status = AuthenticationResponseStatus.success
response.user_info = {"cn": "User RW", "mail": "user_rw@example.com"}
......
......@@ -1264,3 +1264,61 @@ def test_host_sensitive_field_update_on_network_change(
instances, nb = models.Host.search("sensitive:true")
assert nb == 1
assert instances[0].name == name
@pytest.mark.parametrize(
"dn,username,user_info,user_groups,expected_display_name,expected_email,expected_groups",
[
(
"uid=johndoe,ou=Users,dc=esss,dc=lu,dc=se",
"johndoe",
{"mail": "john.doe@example.org", "cn": "John Doe"},
[{"cn": "group2"}, {"cn": "group1"}],
"John Doe",
"john.doe@example.org",
["group1", "group2"],
),
(
"uid=johndoe,ou=Users,dc=esss,dc=lu,dc=se",
"johndoe",
{"mail": ["john.doe@example.org"], "cn": ["John Doe"]},
[{"cn": ["group2"]}, {"cn": ["group1"]}],
"John Doe",
"john.doe@example.org",
["group1", "group2"],
),
(
"uid=auditor,ou=Service accounts,dc=esss,dc=lu,dc=se",
"auditor",
{
"uid": ["auditor"],
"cn": [],
"mail": [],
"dn": "uid=csentry_svc,ou=Service accounts,dc=esss,dc=lu,dc=se",
},
[
{
"cn": ["csentry_auditors"],
"dn": "cn=csentry_auditors,ou=ICS,ou=Groups,dc=esss,dc=lu,dc=se",
}
],
"auditor",
"",
["csentry_auditors"],
),
],
)
def test_save_user(
dn,
username,
user_info,
user_groups,
expected_display_name,
expected_email,
expected_groups,
):
user = models.save_user(dn, username, user_info, user_groups)
assert user.username == username
assert user.display_name == expected_display_name
assert user.email == expected_email
assert user.groups == expected_groups
......@@ -9,6 +9,7 @@ This module defines utils tests.
:license: BSD 2-Clause, see LICENSE for more details.
"""
import pytest
from pathlib import Path
from app import utils
......@@ -45,3 +46,17 @@ class TestUniqueFilename:
p = tmpdir.join("test")
p.write("Hello")
assert utils.unique_filename(p) == Path(tmpdir.join("test-1"))
@pytest.mark.parametrize(
"input,expected",
[
([], ""),
(["foo"], "foo"),
(["foo", "bar"], "foo"),
("hello", "hello"),
("", ""),
],
)
def test_attribute_to_string(input, expected):
assert utils.attribute_to_string(input) == expected
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment