Добавлен параметр '--hosts' при установке и апдейте сервиса Jabber (это имена доплнительных хостов для jabber cервиса)

git-svn-id: http://svn.calculate.ru/calculate2/calculate-server/trunk@1348 c91db197-33c1-4113-bf15-f8a5c547ca64
develop
asamoukin 15 years ago
parent 490102e6ee
commit 7bebe691fc

@ -497,4 +497,15 @@ class fillVars(object, cl_base.glob_attr):
fullHostName = "%s.%s"%(hostName,domain)
if fullHostName in replUnixServers:
return "on"
return "off"
return "off"
def get_sr_jabber_hosts(self):
"""имена хостов с которыми работает сервис Jabber"""
return self.Get("sr_jabber_host")
def get_sr_jabber_hosts_pass(self):
"""Текст в ejabberd.cfg - имена хостов с которыми работает сервис"""
jabberHosts = self.Get("sr_jabber_hosts")
if jabberHosts:
return ", ".join(map(lambda x: '"'+x+'"', jabberHosts.split(",")))
return ""

@ -4431,13 +4431,13 @@ class servJabber(shareLdap):
def searchAllUsers(self):
"""Находит у всех пользователей uid и JabberID"""
resSearch = self.searchLdapDN("*", self.relUsersDN,
"uid",["uid","mail"])
"uid",["uid", "cn", "mail"])
return resSearch
def searchUsersToHostName(self, hostName):
"""Находит всех пользователей с данным именем хоста"""
resSearch = self.searchLdapDN("*@%s" %hostName, self.relUsersDN,
"mail",["uid","mail"])
"mail",["uid", "mail"])
return resSearch
def searchUserToNameOrId(self, nameOrId):
@ -4656,7 +4656,7 @@ in Jabber service"))
return False
def modUserJabberServer(self, userName, options):
def modUserJabberServer(self, userName, options, printSuccess=True):
"""Модифицирует настройки пользователя Jabber в LDAP"""
# Проверим установлен ли сервис jabber
if not self.initialChecks("jabber"):
@ -4677,13 +4677,14 @@ in Jabber service"))
else:
if len(jabberId.split("@")) != 2:
self.printERROR(_("JID %s incorrect") %jabberId)
return False
return False
searchUser = self.searchUserToId(jabberId)
if searchUser:
foundUserName = searchUser[0][0][1]['uid'][0]
self.printERROR(_("User %s") %str(foundUserName) + " " +\
if foundUserName != userName:
self.printERROR(_("User %s") %str(foundUserName) + " " +\
_("has a JID %s") %jabberId)
return False
return False
# добавляем jabberID в Unix
if self.isServiceSetup("unix",False):
if not self.servUnixObj.setUserJabberID(userName, jabberId):
@ -4694,6 +4695,7 @@ in Unix service") %str(jabberId))
modAttrs.append((ldap.MOD_REPLACE, 'mail', jabberId))
else:
modAttrs.append((ldap.MOD_ADD, 'mail', jabberId))
modAttrs.append((ldap.MOD_REPLACE,'cn',jabberId.partition("@")[0]))
# Изменяет группу в которую входит пользователь
if options.has_key('g'):
userGroup = options['g']
@ -4718,8 +4720,7 @@ in Unix service") %str(jabberId))
# Изменяем комментарий к пользователю
if options.has_key('c'):
comment = options['c']
modAttrs += [(ldap.MOD_REPLACE, 'sn', comment),
(ldap.MOD_REPLACE, 'cn', comment)]
modAttrs += [(ldap.MOD_REPLACE, 'sn', comment)]
# Изменяем пароль пользователя
userPwd = self.getUserPassword(options, "p", "P")
if userPwd == False:
@ -4737,17 +4738,19 @@ in Unix service") %str(jabberId))
DN = self.addDN("uid="+uid, self.relUsersDN)
if not self.modAttrsDN(DN, modAttrs):
return False
if options.has_key('c'):
self.printSUCCESS(_("Modified comment (full name)"))
if options.has_key('L'):
self.printSUCCESS(_("Locked Jabber user %s")%str(userName))
if options.has_key('U'):
self.printSUCCESS(_("Unlocked Jabber user %s")%str(userName))
if options.has_key('P') or options.has_key('p'):
self.printSUCCESS(_("Modified Jabber user password"))
if options.has_key('j'):
self.printSUCCESS(_("Modified JID"))
if options.has_key('i'):
if printSuccess:
if options.has_key('c'):
self.printSUCCESS(_("Modified comment (full name)"))
if options.has_key('L'):
self.printSUCCESS(_("Locked Jabber user %s")%str(userName))
if options.has_key('U'):
self.printSUCCESS(_("Unlocked Jabber user %s")\
%str(userName))
if options.has_key('P') or options.has_key('p'):
self.printSUCCESS(_("Modified Jabber user password"))
if options.has_key('j'):
self.printSUCCESS(_("Modified JID"))
if printSuccess and options.has_key('i'):
self.printSUCCESS(_("Set image %s for Jabber user")%\
str(options['i']) + " " + str(userName))
return True
@ -4900,17 +4903,29 @@ in Unix service") %str(jabberId))
%groupName)
return True
@adminConnectLdap
def updateJabberIdInUnix(self):
"""Перезаписывает на основании текущих jabberID в Unix сервисе"""
if not self.isServiceSetup("unix",False):
return True
def upgradeService(self):
"""Обновляет настройки и базу данных
Используется при установке сервиса и его апдейте
"""
# Флаг ошибки
searchUsers = self.searchAllUsers()
flagError = False
for fieldUser in searchUsers:
if fieldUser[0][1].has_key("mail"):
userName = fieldUser[0][1]['uid'][0]
jabberId = fieldUser[0][1]['mail'][0]
cn = fieldUser[0][1]['cn'][0]
if cn != jabberId.partition("@")[0]:
options = {"j":jabberId}
# Изменяем аттрибут cn у всех пользователей
if not self.modUserJabberServer(userName, options, False):
self.printERROR(_("Failed set jabberID for user %s \
in Jabber service") %str(jabberId))
flagError = True
break
# Изменяем jabberId у всех пользователей сервиса Unix
if not self.servUnixObj.setUserJabberID(userName, jabberId):
self.printERROR(_("Failed set jabberID for user %s \
in Unix service") %str(jabberId))
@ -4920,6 +4935,7 @@ in Unix service") %str(jabberId))
return False
return True
@adminConnectLdap
def addUserJabberServer(self, userName, options, checkSetup=True):
"""Добавляет jabber пользователя"""
@ -5053,12 +5069,29 @@ in Unix service") %str(jabberId))
# Jabber host
fullHostName = "%s.%s"%(self.clVars.Get('os_net_hostname'),
self.clVars.Get('os_net_domain'))
jabberHosts = fullHostName
if options.has_key("host"):
fullHostName = options['host']
if not "." in fullHostName:
fullHostName = "%s.%s" %(fullHostName,
self.clVars.Get('os_net_domain'))
self.clVars.Set("sr_jabber_host",fullHostName,True)
# Устанавливаем дополнительные хосты jabber cервиса
if options.has_key("hosts"):
hosts = options['hosts'].split(",")
jabberHostsList = [self.clVars.Get("sr_jabber_host")]
for host in hosts:
apHost = host
if not "." in host:
apHost = "%s.%s" %(host,
self.clVars.Get('os_net_domain'))
jabberHostsList.append(apHost)
unicHostsList = []
for host in jabberHostsList:
if not host in unicHostsList:
unicHostsList.append(host)
jabberHosts = ",".join(unicHostsList)
self.clVars.Set("sr_jabber_hosts",jabberHosts,True)
if options.has_key("history"):
history = options["history"].strip()
@ -5135,6 +5168,9 @@ in Unix service") %str(jabberId))
#запишем переменные для сервера
jabberHost = self.clVars.Get("sr_jabber_host")
self.clVars.Write("sr_jabber_host",jabberHost,True,"local")
self.clVars.Write("sr_jabber_hosts",
self.clVars.Get("sr_jabber_hosts"),
True,"local")
self.clVars.Write("sr_jabber_history",
self.clVars.Get("sr_jabber_history"),
True,"local")
@ -6766,7 +6802,7 @@ outdated. If the backup is obsolete, use cl-backup."))
self.printERROR(_("variable 'ld_repl_id' empty"))
return False
if printReplServ and self.clVars.Get("ld_repl_set") == "on":
# Вывод списка реплицируемых <EFBFBD>ерверов
# Вывод списка реплицируемых cерверов
unixReplServ = self.clVars.Get("ld_repl_unix_servers")
sambaReplServ = self.clVars.Get("ld_repl_samba_servers")
mailReplServ = self.clVars.Get("ld_repl_mail_servers")
@ -6827,6 +6863,22 @@ outdated. If the backup is obsolete, use cl-backup."))
if newHostName != previousJabberHost:
# Устанавливаем перемемнную
self.clVars.Set("sr_jabber_host",newHostName,True)
# Устанавливаем дополнительные хосты jabber cервиса
if options.has_key("hosts"):
hosts = options['hosts'].split(",")
jabberHostsList = [self.clVars.Get("sr_jabber_host")]
for host in hosts:
apHost = host
if not "." in host:
apHost = "%s.%s" %(host,
self.clVars.Get('os_net_domain'))
jabberHostsList.append(apHost)
unicHostsList = []
for host in jabberHostsList:
if not host in unicHostsList:
unicHostsList.append(host)
jabberHosts = ",".join(unicHostsList)
self.clVars.Set("sr_jabber_hosts",jabberHosts,True)
# находим установленные сервисы
servInstalled = self.getServiceSetup()
if not servInstalled:
@ -6865,7 +6917,7 @@ outdated. If the backup is obsolete, use cl-backup."))
if service == "ldap":
continue
if service == "samba":
# Получаем от п<EFBFBD>льзователя доверительные сети
# Получаем от пoльзователя доверительные сети
# для сервиса Samba
if options.has_key("a") and\
not service in noInputAllowNetServices:
@ -6973,8 +7025,8 @@ outdated. If the backup is obsolete, use cl-backup."))
if not self.servJabberObj.setHostName(newHostName,
previousJabberHost):
return False
# Update jabberID записей в сервисе Unix
if not self.servJabberObj.updateJabberIdInUnix():
# Update jabberID записей в сервисе Unix и изменение сn записей
if not self.servJabberObj.upgradeService():
return False
if not flagError and serviceUpdate in ["all","unix","samba","mail"]:
# создаем объект репликации
@ -7011,6 +7063,9 @@ outdated. If the backup is obsolete, use cl-backup."))
self.clVars.Write("sr_jabber_host",
self.clVars.Get("sr_jabber_host"),
True,"local")
self.clVars.Write("sr_jabber_hosts",
self.clVars.Get("sr_jabber_hosts"),
True,"local")
# Переменные для почты
if "mail" in servInstalled and serviceUpdate in ["all","mail"]:
self.clVars.Write("sr_mail_type",
@ -8217,7 +8272,7 @@ The default group type is 2.")
'longOption':"delete",
'optVal':"USERS",
'helpChapter':_("Common options"),
'help':_("delete members (comma delimted)")
'help':_("delete members (comma delimited)")
},
{'progAccess':(2,),
'shortOption':"n",
@ -8798,6 +8853,12 @@ the password will be changed only for Samba account")
'helpChapter':_("Jabber service options"),
'help':_("jabber host, default - hostname")
},
{'progAccess':(6,),
'optVal':"HOSTS",
'longOption':"hosts",
'helpChapter':_("Jabber service options"),
'help':_("jabber supplementary hosts, (comma delimited)")
},
{'progAccess':(6,),
'optVal':"CONDITION",
'longOption':"history",
@ -8894,6 +8955,12 @@ the password will be changed only for Samba account")
'helpChapter':_("Jabber service options"),
'help':_("jabber host, default - hostname")
},
{'progAccess':(9,),
'optVal':"HOSTS",
'longOption':"hosts",
'helpChapter':_("Jabber service options"),
'help':_("jabber supplementary hosts, (comma delimited)")
},
{'progAccess':(9,),
'shortOption':"a",
'longOption':"allow",
@ -9066,17 +9133,11 @@ the password will be changed only for Samba account")
'help':pcs(" unix", self.column_width,
"unix " + servName, self.consolewidth-self.column_width)
},
{'progAccess':(3,4,5,6,7,9,12,14),
{'progAccess':(0,1,2,3,4,5,6,7,9,12,14),
'helpChapter':_("Services"),
'help':pcs(" samba", self.column_width,
"samba " + servName, self.consolewidth-self.column_width)
},
{'progAccess':(0,1,2,),
'helpChapter':_("Services"),
'help':pcs(" samba", self.column_width,
_("using unix group"),
self.consolewidth-self.column_width)
},
{'progAccess':(0,1,2,3,4,5,6,7,9,12,14),
'helpChapter':_("Services"),
'help':pcs(" mail", self.column_width,

@ -145,6 +145,12 @@ class Data:
# имя компьютера с настроенным сервисом Jabber
sr_jabber_host = {}
# имена хостов с которыми работает сервис Jabber
sr_jabber_hosts = {}
# Текст в ejabberd.cfg - имена хостов с которыми работает сервис
sr_jabber_hosts_pass = {}
# jabber id пользователя
sr_jabber_user_id = {'mode':"w"}

Loading…
Cancel
Save