mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-14 10:21:56 -06:00
Support of user default email domain
This patch fixes the default domain functionality for user email(s). This setting may be configured via: ipa config-mod --emaildomain=example.com Then, when user is added/modified and --mail option is passed, the default domain is appended if the passed attribute does not contain another domain already. https://fedorahosted.org/freeipa/ticket/598
This commit is contained in:
parent
29706fb13b
commit
34efc7bc24
@ -214,6 +214,22 @@ class user(LDAPObject):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _normalize_email(self, email, config=None):
|
||||||
|
if not config:
|
||||||
|
config = self.backend.get_ipa_config()[1]
|
||||||
|
|
||||||
|
# check if default email domain should be added
|
||||||
|
if email and 'ipadefaultemaildomain' in config:
|
||||||
|
norm_email = []
|
||||||
|
for m in email:
|
||||||
|
if m.find('@') == -1:
|
||||||
|
norm_email.append(m + u'@' + config['ipadefaultemaildomain'][0])
|
||||||
|
else:
|
||||||
|
norm_email.append(m)
|
||||||
|
return norm_email
|
||||||
|
|
||||||
|
return email
|
||||||
|
|
||||||
api.register(user)
|
api.register(user)
|
||||||
|
|
||||||
|
|
||||||
@ -275,6 +291,9 @@ class user_add(LDAPCreate):
|
|||||||
raise errors.NotFound(reason=error_msg)
|
raise errors.NotFound(reason=error_msg)
|
||||||
entry_attrs['gidnumber'] = group_attrs['gidnumber']
|
entry_attrs['gidnumber'] = group_attrs['gidnumber']
|
||||||
|
|
||||||
|
if 'mail' in entry_attrs:
|
||||||
|
entry_attrs['mail'] = self.obj._normalize_email(entry_attrs['mail'], config)
|
||||||
|
|
||||||
return dn
|
return dn
|
||||||
|
|
||||||
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||||
@ -308,6 +327,11 @@ class user_mod(LDAPUpdate):
|
|||||||
|
|
||||||
msg_summary = _('Modified user "%(value)s"')
|
msg_summary = _('Modified user "%(value)s"')
|
||||||
|
|
||||||
|
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
|
||||||
|
if 'mail' in entry_attrs:
|
||||||
|
entry_attrs['mail'] = self.obj._normalize_email(entry_attrs['mail'])
|
||||||
|
return dn
|
||||||
|
|
||||||
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
|
||||||
if not 'nsaccountlock' in entry_attrs:
|
if not 'nsaccountlock' in entry_attrs:
|
||||||
entry_attrs['nsaccountlock'] = [u'False']
|
entry_attrs['nsaccountlock'] = [u'False']
|
||||||
|
Loading…
Reference in New Issue
Block a user