summaryrefslogtreecommitdiffstats
path: root/ipa-server/ipa-gui/ipagui/subcontrollers/user.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipa-server/ipa-gui/ipagui/subcontrollers/user.py')
-rw-r--r--ipa-server/ipa-gui/ipagui/subcontrollers/user.py40
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 ""