Files
the-littlest-jupyterhub/tljh/normalize.py

24 lines
620 B
Python
Raw Normal View History

"""
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]
)