Files
the-littlest-jupyterhub/tljh/normalize.py
2024-02-05 20:29:33 +00:00

25 lines
613 B
Python

"""
Functions to normalize various inputs
"""
import hashlib
def generate_system_username(username):
"""
Generate a posix username from given username.
If username < 26 char, we just return it.
Else, we hash the username, truncate username at
26 char, append a '-' and first add 5char of hash.
This makes sure our usernames are always under 32char.
"""
if len(username) < 26:
return username
userhash = hashlib.sha256(username.encode("utf-8")).hexdigest()
return "{username_trunc}-{hash}".format(
username_trunc=username[:26], hash=userhash[:5]
)