|
|
|
@ -23,9 +23,9 @@ from cl_data import DataVars
|
|
|
|
|
from cl_template import iniParser, template, xmlShare, _file
|
|
|
|
|
from cl_help import opt, cl_help
|
|
|
|
|
from cl_utils import _error, getpathenv, runOsCommand
|
|
|
|
|
from cl_print import color_print
|
|
|
|
|
from cl_ldap import ldapFun
|
|
|
|
|
from cl_string import prettyColumnStr
|
|
|
|
|
from cl_lib import shareFile
|
|
|
|
|
import _cl_keys
|
|
|
|
|
|
|
|
|
|
from ldap import SCOPE_ONELEVEL
|
|
|
|
@ -240,7 +240,7 @@ class RsyncProgressBar(ProgressBar):
|
|
|
|
|
self.setValue(oldpercent)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class cl_client(_error, xmlShare, cl_help, color_print):
|
|
|
|
|
class cl_client(_error, xmlShare, cl_help, shareFile):
|
|
|
|
|
"""Основной класс для работы клиентских приложений"""
|
|
|
|
|
# Пути к шаблонам объединяемых с системными
|
|
|
|
|
# относительный путь при объединении '/'
|
|
|
|
@ -1586,40 +1586,6 @@ or ld_bind_dn or ld_bind_pw")
|
|
|
|
|
textLine = self.execProg(mountStr, None, True, {"PASSWD":userPwd})
|
|
|
|
|
return textLine
|
|
|
|
|
|
|
|
|
|
def removeDir(self, rmDirOrScanObjs):
|
|
|
|
|
"""Рекурсивное удаление директории
|
|
|
|
|
|
|
|
|
|
входной параметр директория или результат сканирования файлов (объект)
|
|
|
|
|
"""
|
|
|
|
|
rmDir = False
|
|
|
|
|
if type(rmDirOrScanObjs) == types.StringType:
|
|
|
|
|
rmDir = rmDirOrScanObjs
|
|
|
|
|
if not os.path.exists(rmDir):
|
|
|
|
|
self.printERROR(_("Not found remove dir %s") %rmDir)
|
|
|
|
|
return False
|
|
|
|
|
fileObj = _file()
|
|
|
|
|
# Сканируем директорию
|
|
|
|
|
scanObjs = fileObj.scanDirs([rmDir])
|
|
|
|
|
else:
|
|
|
|
|
scanObjs = rmDirOrScanObjs
|
|
|
|
|
for socketRm in scanObjs[0].sockets:
|
|
|
|
|
# Удаляем сокеты
|
|
|
|
|
if os.path.exists(socketRm):
|
|
|
|
|
os.remove(socketRm)
|
|
|
|
|
for linkRm in scanObjs[0].links:
|
|
|
|
|
# Удаляем ссылки
|
|
|
|
|
os.unlink(linkRm[1])
|
|
|
|
|
for fileRm in scanObjs[0].files:
|
|
|
|
|
# Удаляем файлы
|
|
|
|
|
os.remove(fileRm)
|
|
|
|
|
scanObjs[0].dirs.sort(lambda x, y: cmp(len(y), len(x)))
|
|
|
|
|
for dirRm in scanObjs[0].dirs:
|
|
|
|
|
# Удаляем директории
|
|
|
|
|
os.rmdir(dirRm)
|
|
|
|
|
if rmDir:
|
|
|
|
|
os.rmdir(rmDir)
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def isCorrectTemplateOnLocalServer(self,userName):
|
|
|
|
|
"""Узнать находится ли актуальный профиль пользователя на локальном
|
|
|
|
|
сервере
|
|
|
|
|