|
|
|
@ -192,6 +192,20 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
|
|
|
|
|
'901',
|
|
|
|
|
'Admin samba user')}
|
|
|
|
|
|
|
|
|
|
def getServiceSetup(self):
|
|
|
|
|
"""находит установленные сервисы
|
|
|
|
|
|
|
|
|
|
Выдаем список [установленные сервисы]
|
|
|
|
|
"""
|
|
|
|
|
# инсталированнные сервисы
|
|
|
|
|
servInstalled = []
|
|
|
|
|
# доступные сервисы
|
|
|
|
|
services = ('ldap', 'unix', 'samba', 'mail', 'jabber', 'ftp')
|
|
|
|
|
for serv in services:
|
|
|
|
|
if self.clVars.Get("sr_%s_set"%serv) == "on":
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
return servInstalled
|
|
|
|
|
|
|
|
|
|
def restorePathDelUser(self,userName,destDir,relDir,message,unixObj=False):
|
|
|
|
|
"""Восстанавливает директорию удаленного пользователя"""
|
|
|
|
|
removeDir = False
|
|
|
|
@ -1511,10 +1525,10 @@ class servUnix(shareLdap):
|
|
|
|
|
|
|
|
|
|
@adminConnectLdap
|
|
|
|
|
def addMachineLdapServer(self, machineName, options):
|
|
|
|
|
"""Добавляет Unix машину в LDAP-сервер"""
|
|
|
|
|
# Проверим установлен ли сервис unix
|
|
|
|
|
if not self.isServiceSetup("unix"):
|
|
|
|
|
return False
|
|
|
|
|
"""Добавляет Unix машину в LDAP-сервер"""
|
|
|
|
|
machineLogin = machineName.replace('$','') + "$"
|
|
|
|
|
groupName = self.clVars.Get('sr_samba_machine_group')
|
|
|
|
|
resSearch = self.searchUnixGroupName(groupName)
|
|
|
|
@ -2213,10 +2227,10 @@ service"))
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def modUserUnixPasswd(self, userName, options, pwd=False):
|
|
|
|
|
"""Устанавливает пароль LDAP пользователя и меняет его опции"""
|
|
|
|
|
# Проверим установлен ли сервис unix
|
|
|
|
|
if not self.isServiceSetup("unix"):
|
|
|
|
|
return False
|
|
|
|
|
"""Устанавливает пароль LDAP пользователя и меняет его опции"""
|
|
|
|
|
res = self.searchUnixUser(userName)
|
|
|
|
|
if not res:
|
|
|
|
|
self.printERROR(
|
|
|
|
@ -2281,10 +2295,10 @@ service"))
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
def modGroupUnixServer(self, groupName, options):
|
|
|
|
|
"""Модифицирует настройки группы пользователей LDAP"""
|
|
|
|
|
# Проверим установлен ли сервис unix
|
|
|
|
|
if not self.isServiceSetup("unix"):
|
|
|
|
|
return False
|
|
|
|
|
"""Модифицирует настройки группы пользователей LDAP"""
|
|
|
|
|
if not self.searchUnixGroupName(groupName):
|
|
|
|
|
self.printERROR(_("group name not found in Unix service") + " ...")
|
|
|
|
|
return False
|
|
|
|
@ -3457,7 +3471,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
mailHost = self.clVars.Get("sr_mail_host")
|
|
|
|
|
self.clVars.Write("sr_mail_host",mailHost,True,"local")
|
|
|
|
|
#запишем переменные для клиента
|
|
|
|
|
self.clVars.Set("sr_mail_send_host",fullHostName)
|
|
|
|
|
self.clVars.Set("sr_mail_send_host",mailHost)
|
|
|
|
|
clientVars = ["sr_mail_host","sr_mail_crypt", "sr_mail_port",
|
|
|
|
|
"sr_mail_type","sr_mail_send_crypt","sr_mail_send_port",
|
|
|
|
|
"sr_mail_send_host"]
|
|
|
|
@ -4724,8 +4738,10 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
|
|
|
|
|
if not self.createUserFile(fileDirectory, fileTxt, uid, gid):
|
|
|
|
|
return False
|
|
|
|
|
#запишем переменные для сервера
|
|
|
|
|
domain = self.clVars.Get("sr_samba_domain")
|
|
|
|
|
self.clVars.Write("sr_samba_domain",domain,True,"local")
|
|
|
|
|
netbios = self.clVars.Get("sr_samba_netbios")
|
|
|
|
|
self.clVars.Write("sr_mail_host",netbios,True,"local")
|
|
|
|
|
self.clVars.Write("sr_samba_netbios",netbios,True,"local")
|
|
|
|
|
#запишем переменные для клиента
|
|
|
|
|
fullHostName = "%s.%s"%(self.clVars.Get('os_net_hostname'),
|
|
|
|
|
self.clVars.Get('os_net_domain'))
|
|
|
|
@ -4893,45 +4909,17 @@ class servLdap(shareLdap):
|
|
|
|
|
"""
|
|
|
|
|
servicePaths = []
|
|
|
|
|
servInstalled = []
|
|
|
|
|
# Инсталлированные сервисы
|
|
|
|
|
servInst = self.getServiceSetup()
|
|
|
|
|
# пути к директориям профилей
|
|
|
|
|
profilePaths = self.clVars.Get("cl_profile_path")
|
|
|
|
|
for profilePath in profilePaths:
|
|
|
|
|
if self.clVars.Get("sr_ldap_set") == "on":
|
|
|
|
|
serv = "ldap"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_unix_set") == "on":
|
|
|
|
|
serv = "unix"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_samba_set") == "on":
|
|
|
|
|
serv = "samba"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_mail_set") == "on":
|
|
|
|
|
serv = "mail"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_jabber_set") == "on":
|
|
|
|
|
serv = "jabber"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
if self.clVars.Get("sr_ftp_set") == "on":
|
|
|
|
|
serv = "ftp"
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
for serv in servInst:
|
|
|
|
|
if self.clVars.Get("sr_%s_set"%serv) == "on":
|
|
|
|
|
servPath = os.path.join(profilePath,serv)
|
|
|
|
|
if os.path.exists(servPath):
|
|
|
|
|
servicePaths.append(servPath)
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
return (servicePaths, servInstalled)
|
|
|
|
|
|
|
|
|
|
def updateServer(self, options, serviceUpdate):
|
|
|
|
@ -4952,8 +4940,8 @@ class servLdap(shareLdap):
|
|
|
|
|
%str(history) + " ...")
|
|
|
|
|
return False
|
|
|
|
|
# находим установленные сервисы
|
|
|
|
|
servicePaths, servInstalled = self.getServiceSetupPathProfiles()
|
|
|
|
|
if not servicePaths:
|
|
|
|
|
servInstalled = self.getServiceSetup()
|
|
|
|
|
if not servInstalled:
|
|
|
|
|
self.printERROR("Services are not installed")
|
|
|
|
|
return False
|
|
|
|
|
flagError = False
|
|
|
|
@ -4977,7 +4965,7 @@ class servLdap(shareLdap):
|
|
|
|
|
self.printERROR(_("Not found password from service %s")%service)
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
self.clVars.Set("ld_%s_pw"%service,adminPw, True)
|
|
|
|
|
self.clVars.Set("ld_%s_pw"%service, adminPw, True)
|
|
|
|
|
# Наложение профилей
|
|
|
|
|
if not flagError:
|
|
|
|
|
for service in servInstalled:
|
|
|
|
@ -5061,9 +5049,12 @@ class servLdap(shareLdap):
|
|
|
|
|
scanPrivDirs.append(dirDelUsers)
|
|
|
|
|
# Добавляем calulate.ldap
|
|
|
|
|
allArchFiles.append(ldapParser.nameIniFile)
|
|
|
|
|
# Добавляем calculate.env
|
|
|
|
|
iniFile = "/" + self.clVars.Get("cl_env_path")[2]
|
|
|
|
|
allArchFiles.append(iniFile)
|
|
|
|
|
# Добавляем calculate.env
|
|
|
|
|
iniFiles = self.clVars.Get("cl_env_path")
|
|
|
|
|
if iniFiles and len(iniFiles)>1:
|
|
|
|
|
for iniFile in iniFiles:
|
|
|
|
|
if os.path.exists(iniFile):
|
|
|
|
|
allArchFiles.append(iniFile)
|
|
|
|
|
if "samba" in servInstalled:
|
|
|
|
|
scanPrivDirs.append(self.sambaPrivate)
|
|
|
|
|
if "mail" in servInstalled:
|
|
|
|
@ -5115,7 +5106,7 @@ class servLdap(shareLdap):
|
|
|
|
|
а также прописываем в автозапуск
|
|
|
|
|
"""
|
|
|
|
|
# находим установленные сервисы
|
|
|
|
|
servicePaths, servInstalled = self.getServiceSetupPathProfiles()
|
|
|
|
|
servInstalled = self.getServiceSetup()
|
|
|
|
|
return self.startServices(servInstalled)
|
|
|
|
|
|
|
|
|
|
def restoreServer(self):
|
|
|
|
@ -5308,7 +5299,7 @@ class servLdap(shareLdap):
|
|
|
|
|
if not self.delServicesAutostart(self.getALLServices()):
|
|
|
|
|
return False
|
|
|
|
|
# Получим путь к ini файлу
|
|
|
|
|
iniFile = "/" + self.clVars.Get("cl_env_path")[2]
|
|
|
|
|
iniFile = self.clVars.Get("cl_env_path")[2]
|
|
|
|
|
# Удаляем ini файл
|
|
|
|
|
if os.path.exists(iniFile):
|
|
|
|
|
os.remove(iniFile)
|
|
|
|
@ -5430,13 +5421,6 @@ class cl_ldap(shareLdap):
|
|
|
|
|
_("Jabber service options")],
|
|
|
|
|
"ftp":[_("Common options"),
|
|
|
|
|
_("FTP service options")],
|
|
|
|
|
"all":[_("Common options"),
|
|
|
|
|
_("Samba service options"),
|
|
|
|
|
_("LDAP service options"),
|
|
|
|
|
_("Unix service options"),
|
|
|
|
|
_("Mail service options"),
|
|
|
|
|
_("Jabber service options"),
|
|
|
|
|
_("FTP service options")],
|
|
|
|
|
}
|
|
|
|
|
# Cвязь длинных опций помощи и выводимых разделов помощи с опциями
|
|
|
|
|
self.relOptions = {"h":[_("Common options")],
|
|
|
|
@ -6201,7 +6185,7 @@ the password will be changed only for Samba account")
|
|
|
|
|
{'progAccess':(9,),
|
|
|
|
|
'optVal':"CONDITION",
|
|
|
|
|
'longOption':"history",
|
|
|
|
|
'helpChapter':_("Common options"),
|
|
|
|
|
'helpChapter':_("Jabber service options"),
|
|
|
|
|
'help':_("enabled or disabled jabber history logging, default disable.\
|
|
|
|
|
(on/off)")
|
|
|
|
|
},
|
|
|
|
@ -6220,12 +6204,6 @@ the password will be changed only for Samba account")
|
|
|
|
|
#'help':_("show enviroment values (filter for type, all - no filter)")
|
|
|
|
|
#},
|
|
|
|
|
# Services
|
|
|
|
|
{'progAccess':(9,),
|
|
|
|
|
'helpChapter':_("Services"),
|
|
|
|
|
'help':pcs(" all", self.column_width,
|
|
|
|
|
_("all services"), self.consolewidth-self.column_width)
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{'progAccess':(6,),
|
|
|
|
|
'helpChapter':_("Services"),
|
|
|
|
|
'help':pcs(" ldap", self.column_width,
|
|
|
|
|