username would consist of only alphanumerics, ldap fields are encoded in utf-8
This commit is contained in:
parent
c96aff16af
commit
b4995336c6
3 changed files with 15 additions and 13 deletions
|
@ -1 +1 @@
|
||||||
10178
|
10185
|
|
@ -82,8 +82,9 @@ def assign_username(user):
|
||||||
|
|
||||||
# Try to come up with a username
|
# Try to come up with a username
|
||||||
first_name, last_name = get_first_and_last_name(user.name)
|
first_name, last_name = get_first_and_last_name(user.name)
|
||||||
user.username = first_name.lower() + last_name.lower()
|
user.username = first_name + last_name
|
||||||
user.username = "".join(user.username.split())
|
user.username = "".join(user.username.split()).lower()
|
||||||
|
user.username = "".join([char for char in user.username if char.isalnum()])
|
||||||
|
|
||||||
exist = True
|
exist = True
|
||||||
while exist:
|
while exist:
|
||||||
|
@ -91,14 +92,14 @@ def assign_username(user):
|
||||||
exist, entries = ldap_manager.check_user_exists(user.username)
|
exist, entries = ldap_manager.check_user_exists(user.username)
|
||||||
if exist:
|
if exist:
|
||||||
# If username exists in ldap, come up with a new user name and check it again
|
# If username exists in ldap, come up with a new user name and check it again
|
||||||
user.username = user.username + str(random.randint(0, 2 ** 50))
|
user.username = user.username + str(random.randint(0, 2 ** 10))
|
||||||
else:
|
else:
|
||||||
# If username does not exists in ldap, try to save it in database
|
# If username does not exists in ldap, try to save it in database
|
||||||
try:
|
try:
|
||||||
user.save()
|
user.save()
|
||||||
except IntegrityError:
|
except IntegrityError:
|
||||||
# If username exists in database then come up with a new username
|
# If username exists in database then come up with a new username
|
||||||
user.username = user.username + str(random.randint(0, 2 ** 50))
|
user.username = user.username + str(random.randint(0, 2 ** 10))
|
||||||
|
|
||||||
|
|
||||||
class CustomUser(AbstractBaseUser, PermissionsMixin):
|
class CustomUser(AbstractBaseUser, PermissionsMixin):
|
||||||
|
|
|
@ -88,23 +88,23 @@ class LdapManager:
|
||||||
logger.debug("{uid} does not exist. Using it".format(uid=uidNumber))
|
logger.debug("{uid} does not exist. Using it".format(uid=uidNumber))
|
||||||
self._set_max_uid(uidNumber)
|
self._set_max_uid(uidNumber)
|
||||||
try:
|
try:
|
||||||
uid = user
|
uid = user.encode("utf-8")
|
||||||
conn.add("uid={uid},{customer_dn}".format(
|
conn.add("uid={uid},{customer_dn}".format(
|
||||||
uid=uid, customer_dn=settings.LDAP_CUSTOMER_DN
|
uid=uid, customer_dn=settings.LDAP_CUSTOMER_DN
|
||||||
),
|
),
|
||||||
["inetOrgPerson", "posixAccount", "ldapPublickey"],
|
["inetOrgPerson", "posixAccount", "ldapPublickey"],
|
||||||
{
|
{
|
||||||
"uid": [uid],
|
"uid": [uid],
|
||||||
"sn": [lastname],
|
"sn": [lastname.encode("utf-8")],
|
||||||
"givenName": [firstname],
|
"givenName": [firstname.encode("utf-8")],
|
||||||
"cn": [uid],
|
"cn": [uid],
|
||||||
"displayName": ["{} {}".format(firstname, lastname)],
|
"displayName": ["{} {}".format(firstname, lastname).encode("utf-8")],
|
||||||
"uidNumber": [str(uidNumber)],
|
"uidNumber": [str(uidNumber)],
|
||||||
"gidNumber": [str(settings.LDAP_CUSTOMER_GROUP_ID)],
|
"gidNumber": [str(settings.LDAP_CUSTOMER_GROUP_ID)],
|
||||||
"loginShell": ["/bin/bash"],
|
"loginShell": ["/bin/bash"],
|
||||||
"homeDirectory": ["/home/{}".format(user)],
|
"homeDirectory": ["/home/{}".format(user).encode("utf-8")],
|
||||||
"mail": email,
|
"mail": email.encode("utf-8"),
|
||||||
"userPassword": [password]
|
"userPassword": [password.encode("utf-8")]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
logger.debug('Created user %s %s' % (user.encode('utf-8'),
|
logger.debug('Created user %s %s' % (user.encode('utf-8'),
|
||||||
|
@ -139,7 +139,7 @@ class LdapManager:
|
||||||
{
|
{
|
||||||
"userpassword": (
|
"userpassword": (
|
||||||
ldap3.MODIFY_REPLACE,
|
ldap3.MODIFY_REPLACE,
|
||||||
[new_password]
|
[new_password.encode("utf-8")]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -151,6 +151,7 @@ class LdapManager:
|
||||||
conn.unbind()
|
conn.unbind()
|
||||||
return return_val
|
return return_val
|
||||||
|
|
||||||
|
|
||||||
def change_user_details(self, uid, details):
|
def change_user_details(self, uid, details):
|
||||||
"""
|
"""
|
||||||
Updates the user details as per given values in kwargs of the user
|
Updates the user details as per given values in kwargs of the user
|
||||||
|
|
Loading…
Reference in a new issue