Добавлен поиск альтернативных почтовых адресов при создании и модификации пользователя почты.

git-svn-id: http://svn.calculate.ru/calculate2/calculate-server/trunk@1746 c91db197-33c1-4113-bf15-f8a5c547ca64
develop
asamoukin 15 years ago
parent 02d9f1c8e6
commit 75b24341c5

@ -3514,6 +3514,26 @@ option '-e'"))
if not altMails and filterHosts:
altMails = searchGroup[0][0][1]["mailAlternateAddress"]
if altMails:
for mail in altMails:
if "@" in altMail:
mail = altMail
else:
mail = "%s@%s" %(altMail,\
self.clVars.Get("sr_mail_host"))
foundReplAlias = servReplObj.searchMailAddress(mail)
if foundReplAlias:
flagError = False
foundReplUsers = foundReplAlias[0][0][1]['cn']
for foundReplUser in foundReplUsers:
if foundReplUser!=groupName:
flagError = True
break
if flagError:
self.printERROR(_("Mail address %s is found in \
'Replication/Mail' branch")%mail)
self.printERROR(_("Mail user or group in \
'Replication/Mail' branch: %s")%foundReplUser)
return False
if not servReplObj.modReplMailAlias(groupName, altMails,
filterHosts):
errorMsg = _("Can not set replication mail alias,") +\
@ -3750,10 +3770,31 @@ in Unix service") %str(primaryMail))
if self.clVars.Get("ld_repl_mail_set") == "on":
# Объект сервис репликации
servReplObj = servRepl()
if not servReplObj.modReplMailAlias(userName, altMails):
self.printERROR(_("Failed modify mail aliases \
if altMails:
for mail in altMails:
if "@" in altMail:
mail = altMail
else:
mail = "%s@%s" %(altMail,\
self.clVars.Get("sr_mail_host"))
foundReplAlias = servReplObj.searchMailAddress(mail)
if foundReplAlias:
flagError = False
foundReplUsers = foundReplAlias[0][0][1]['cn']
for foundReplUser in foundReplUsers:
if foundReplUser!=userName:
flagError = True
break
if flagError:
self.printERROR(_("Mail address %s is found in \
'Replication/Mail' branch")%mail)
self.printERROR(_("Mail user or group in \
'Replication/Mail' branch: %s")%foundReplUser)
return False
if not servReplObj.modReplMailAlias(userName, altMails):
self.printERROR(_("Failed modify mail aliases \
for user %s in 'Replication/Mail' branch") %userName)
return False
return False
if modAttrs:
DN = self.addDN("uid="+userName, self.relUsersDN)
if not self.modAttrsDN(DN, modAttrs):
@ -3805,6 +3846,15 @@ option '-e'"))
_("Alternate email address %s is found in Mail service")%\
str(mail))
return False
if servReplObj:
foundReplAlias = servReplObj.searchMailAddress(mail)
if foundReplAlias:
foundReplUser = foundReplAlias[0][0][1]['cn'][0]
self.printERROR(_("Mail address %s is found in \
'Replication/Mail' branch")%mail)
self.printERROR(_("Mail user or group in \
'Replication/Mail' branch: %s")%foundReplUser)
return False
modAttrs.append('mailAlternateAddress: %s' %mail)
# Фильтр почты (hostname)
fHostNames = []
@ -3827,6 +3877,15 @@ option '-e'"))
_("Email address %s is found in Mail service")%\
str(mail))
return False
if servReplObj:
foundReplAlias = servReplObj.searchMailAddress(mail)
if foundReplAlias:
foundReplUser = foundReplAlias[0][0][1]['cn'][0]
self.printERROR(_("Mail address %s is found in \
'Replication/Mail' branch")%mail)
self.printERROR(_("Mail user or group in \
'Replication/Mail' branch: %s")%foundReplUser)
return False
self.clVars.Set("ur_group", groupName)
# Комментарий к группе
groupGecos = self.servUnixObj.groupGecos
@ -4077,6 +4136,15 @@ for user %s in 'Replication/Mail' branch") %str(primaryMail))
_("Alternate email address %s is found in Mail service")%\
str(mail))
return False
if servReplObj:
foundReplAlias = servReplObj.searchMailAddress(mail)
if foundReplAlias:
foundReplUser = foundReplAlias[0][0][1]['cn'][0]
self.printERROR(_("Mail address %s is found in \
'Replication/Mail' branch")%mail)
self.printERROR(_("Mail user or group in \
'Replication/Mail' branch: %s")%foundReplUser)
return False
modAttrs.append("mailAlternateAddress: %s" %mail)
else:
self.printERROR(\
@ -4094,6 +4162,15 @@ for user %s in 'Replication/Mail' branch") %str(primaryMail))
_("Email address %s is found in Mail service")%\
str(mail))
return False
if servReplObj:
foundReplAlias = servReplObj.searchMailAddress(mail)
if foundReplAlias:
foundReplUser = foundReplAlias[0][0][1]['cn'][0]
self.printERROR(_("Mail address %s is found in \
'Replication/Mail' branch")%mail)
self.printERROR(_("Mail user or group in \
'Replication/Mail' branch: %s")%foundReplUser)
return False
resUnix = self.servUnixObj.searchUnixUser(userName)
resPwd = self.servUnixObj.searchPasswdUser(userName)
# Пароль пользователя почты
@ -10869,6 +10946,17 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
resSearch = self.searchLdapDN(userName, relMailDN, "cn")
return resSearch
def searchMailAddress(self, userMail):
"""Находит адрес пользователя в ветке Replication/Mail"""
relMailDN = self.getRelMailDN()
resSearch = self.searchLdapDN(userMail, relMailDN, "mail")
if not resSearch:
resSearch = self.searchLdapDN(userMail, relMailDN,
"mailAlternateAddress")
if not resSearch:
resSearch = self.searchLdapDN(userMail, relMailDN, "rfc822member")
return resSearch
@adminConnectLdap
def delReplWorkedUser(self, userName, fullDel=True):
"""Удаляет пользователя из ветки Worked"""

Loading…
Cancel
Save