|
|
|
@ -2757,7 +2757,7 @@ class servMail(shareLdap):
|
|
|
|
|
|
|
|
|
|
def delUserMailServer(self,userName,options,printSuccess=True,backup=True):
|
|
|
|
|
"""Удаляем Mail пользователя"""
|
|
|
|
|
# Проверим установлен ли сервис mail
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
# Ищем Mail пользователя
|
|
|
|
@ -2892,7 +2892,7 @@ for user %s in 'Replicatinon/Mail' branch ...") %str(userName) + " ...")
|
|
|
|
|
|
|
|
|
|
def delGroupMailServer(self, groupName, options):
|
|
|
|
|
"""Удаляет группу пользователей Mail"""
|
|
|
|
|
# Проверим установлен ли сервис mail
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
res = self.searchMailGroupToName(groupName)
|
|
|
|
@ -2927,7 +2927,7 @@ for user %s in 'Replicatinon/Mail' branch ...") %str(userName) + " ...")
|
|
|
|
|
|
|
|
|
|
def modGroupMailServer(self, groupName, options):
|
|
|
|
|
"""Модифицирует настройки группы пользователей Mail"""
|
|
|
|
|
# Проверим установлен ли сервис mail
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
searchGroup = self.searchMailGroupToName(groupName)
|
|
|
|
@ -3035,7 +3035,7 @@ in 'Replicatinon/Mail' branch ...") %groupName)
|
|
|
|
|
|
|
|
|
|
def modUserMailServer(self, userName, options):
|
|
|
|
|
"""Модифицирует настройки пользователя Mail в LDAP"""
|
|
|
|
|
# Проверим установлен ли сервис mail
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
res = self.searchMailUserToName(userName)
|
|
|
|
@ -3165,7 +3165,7 @@ for user %s in 'Replicatinon/Mail' branch ...") %userName)
|
|
|
|
|
@adminConnectLdap
|
|
|
|
|
def addGroupMailServer(self, groupName, options):
|
|
|
|
|
"""Добавляет группу пользователей Mail"""
|
|
|
|
|
# Проверим установлен ли сервис mail
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
# Проверяем на включение почтовой репликации
|
|
|
|
@ -3237,7 +3237,7 @@ for user %s in 'Replicatinon/Mail' branch ...") %str(primaryMail))
|
|
|
|
|
|
|
|
|
|
def modUserMailPasswd(self, userName, options):
|
|
|
|
|
"""Устанавливает пароль Mail пользователя и меняет его опции"""
|
|
|
|
|
# Проверим установлен ли сервис mail
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
res = self.searchMailUserToName(userName)
|
|
|
|
@ -3373,7 +3373,7 @@ for user %s in 'Replicatinon/Mail' branch ...") %str(primaryMail))
|
|
|
|
|
|
|
|
|
|
def addUsersGroupMail(self, users, groupName):
|
|
|
|
|
"""Добавляет пользователей из списка в Mail группу"""
|
|
|
|
|
# Проверим установлен ли сервис mail
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
if not self.searchMailGroupToName(groupName):
|
|
|
|
@ -3423,7 +3423,7 @@ for user %s in 'Replicatinon/Mail' branch ...") %str(primaryMail))
|
|
|
|
|
@adminConnectLdap
|
|
|
|
|
def addUserMailServer(self, userName, options):
|
|
|
|
|
"""Добавляет почтового пользователя в LDAP-сервер"""
|
|
|
|
|
# Проверим установлен ли сервис mail
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
# Проверяем на включение почтовой репликации
|
|
|
|
@ -8774,7 +8774,7 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
|
|
|
|
|
aliasDN = self.addDN("cn=%s"%userName,relMailDN)
|
|
|
|
|
# Добавляем альтернативные адреса
|
|
|
|
|
for mail in userMails:
|
|
|
|
|
modAttrs.append((ldap.MOD_ADD, 'mailAlternateAddress',
|
|
|
|
|
attrAppend.append((ldap.MOD_ADD, 'mailAlternateAddress',
|
|
|
|
|
mail))
|
|
|
|
|
modAttrs = attrDelete + attrReplace + attrAppend
|
|
|
|
|
if not self.modAttrsDN(aliasDN, modAttrs):
|
|
|
|
@ -9151,6 +9151,48 @@ use the new version. (openldap > 2.4)")%openLdapVesion)
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
@adminConnectLdap
|
|
|
|
|
def getUsersMail(self):
|
|
|
|
|
"""Находит пользователей в Mail сервисе
|
|
|
|
|
|
|
|
|
|
Вывод список [(имя пользователя, [почтовые адреса пользователя])...)]
|
|
|
|
|
"""
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
# ищем пользователей в ветке Mail
|
|
|
|
|
resSearch = self.searchLdapDN("*", self.servMailObj.relUsersDN,
|
|
|
|
|
"mailAlternateAddress",
|
|
|
|
|
["uid","mailAlternateAddress"])
|
|
|
|
|
if not resSearch:
|
|
|
|
|
return False
|
|
|
|
|
listUserMail = []
|
|
|
|
|
for i in resSearch:
|
|
|
|
|
listUserMail.append((i[0][1]["uid"][0],
|
|
|
|
|
i[0][1]["mailAlternateAddress"]))
|
|
|
|
|
return listUserMail
|
|
|
|
|
|
|
|
|
|
@adminConnectLdap
|
|
|
|
|
def getGroupsMail(self):
|
|
|
|
|
"""Находит группы в Mail сервисе
|
|
|
|
|
|
|
|
|
|
Вывод список [(группа, [почтовые адреса группы])...)]
|
|
|
|
|
"""
|
|
|
|
|
# Проверим установлен ли сервис Mail
|
|
|
|
|
if not self.isServiceSetup("mail"):
|
|
|
|
|
return False
|
|
|
|
|
# ищем группы в ветке Mail
|
|
|
|
|
resSearch = self.searchLdapDN("*", self.servMailObj.relGroupsDN,
|
|
|
|
|
"mailAlternateAddress",
|
|
|
|
|
["cn","mailAlternateAddress"])
|
|
|
|
|
if not resSearch:
|
|
|
|
|
return False
|
|
|
|
|
listGroupMail = []
|
|
|
|
|
for i in resSearch:
|
|
|
|
|
listGroupMail.append((i[0][1]["cn"][0],
|
|
|
|
|
i[0][1]["mailAlternateAddress"]))
|
|
|
|
|
return listGroupMail
|
|
|
|
|
|
|
|
|
|
def setupReplServer(self, options, service):
|
|
|
|
|
"""Начальная настройка репликации"""
|
|
|
|
|
# Cоздаем объект переменные
|
|
|
|
@ -9442,6 +9484,32 @@ together with option '-r'") + " ...")
|
|
|
|
|
self.clVars.Write("ld_repl_samba_servers", smbServers,
|
|
|
|
|
True, "local")
|
|
|
|
|
elif service == "mail":
|
|
|
|
|
# Cчитаем почтовых пользователей и заполним ветку алиасов
|
|
|
|
|
# Переподсоединяемся к LDAP
|
|
|
|
|
self.ldapObj = False
|
|
|
|
|
# Получаем почтовых пользователей
|
|
|
|
|
usersMail = self.getUsersMail()
|
|
|
|
|
# Получаем почтовые группы
|
|
|
|
|
groupsMail = self.getGroupsMail()
|
|
|
|
|
usersAndGroupsMail = reduce(lambda x, y: x+y,
|
|
|
|
|
map(lambda x: x or [],
|
|
|
|
|
[usersMail,groupsMail]),[])
|
|
|
|
|
if usersAndGroupsMail:
|
|
|
|
|
flagError = False
|
|
|
|
|
for name, mails in usersAndGroupsMail:
|
|
|
|
|
if self.searchMailAlias(name):
|
|
|
|
|
if not self.modReplMailAlias(name, mails):
|
|
|
|
|
flagError = False
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
if not self.addReplMailAlias(name, mails):
|
|
|
|
|
flagError = False
|
|
|
|
|
break
|
|
|
|
|
if flagError:
|
|
|
|
|
self.printERROR(_("Can not set replication mail alias,") +\
|
|
|
|
|
" " + _("for name %s")%name + " " +\
|
|
|
|
|
_("(%s)"%", ".join(mails))+ " ...")
|
|
|
|
|
return False
|
|
|
|
|
mailServers = self.clVars.Get("ld_repl_mail_servers")
|
|
|
|
|
if mailServers:
|
|
|
|
|
self.clVars.Write("ld_repl_mail_servers", mailServers,
|
|
|
|
|