|
|
|
@ -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"""
|
|
|
|
|