diff options
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/subcontrollers/user.py')
-rw-r--r-- | ipa-server/ipa-gui/ipagui/subcontrollers/user.py | 40 |
1 files changed, 14 insertions, 26 deletions
diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py index 5552bee7..5b804fd6 100644 --- a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py +++ b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py @@ -17,6 +17,7 @@ import ipa.user from ipa.entity import utf8_encode_values from ipa import ipaerror import ipagui.forms.user +import ipa.config log = logging.getLogger(__name__) @@ -27,6 +28,8 @@ user_edit_form = ipagui.forms.user.UserEditForm() user_fields = ['*', 'nsAccountLock'] +email_domain = ipa.config.config.default_realm.lower() + class UserController(IPAController): @expose() @@ -518,31 +521,16 @@ class UserController(IPAController): givenname = givenname.lower() sn = sn.lower() - # TODO - get from config - domain = "freeipa.org" - - return "%s.%s@%s" % (givenname, sn, domain) - - - # TODO - mail is currently not indexed nor searchable. - # implement when it's done - # email = givenname + "." + sn + domain - # users = client.find_users(email, ['mail']) - # if len(filter(lambda u: u['mail'] == email, users[1:])) == 0: - # return email - - # email = self.suggest_uid(givenname, sn) + domain - # users = client.find_users(email, ['mail']) - # if len(filter(lambda u: u['mail'] == email, users[1:])) == 0: - # return email + email = "%s.%s@%s" % (givenname, sn, email_domain) + try: + client.get_user_by_email(email) + except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND): + return email - # suffix = 2 - # template = givenname + "." + sn - # while suffix < 20: - # email = template + str(suffix) + domain - # users = client.find_users(email, ['mail']) - # if len(filter(lambda u: u['mail'] == email, users[1:])) == 0: - # return email - # suffix += 1 + email = "%s@%s" % (self.suggest_uid(givenname, sn), email_domain) + try: + client.get_user_by_email(email) + except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND): + return email - # return "" + return "" |