develop
asamoukin 15 years ago
parent c36d721744
commit e0c7a55d29

@ -29,6 +29,7 @@ import getpass
import _cl_keys
import time
import stat
Version = "calculate-client 2.0.14"
@ -1056,6 +1057,30 @@ install/6intranet" %(domain,servDn,unixDN,bindDn,bindPw)
textLine = self.execProg(mountStr)
return textLine
def removeDir(self, rmDir):
"""Рекурсивное удаление директории"""
if not os.path.exists(rmDir):
self.printERROR(_("Not found remove dir %s") %rmDir)
return False
fileObj = cl_profile._file()
# Сканируем директорию
scanObjs = fileObj.scanDirs([rmDir])
for fileRm in scanObjs[0].files:
# Удаляем файлы
os.remove(fileRm)
for socketRm in scanObjs[0].sockets:
# Удаляем сокеты
os.remove(socketRm)
for linkRm in scanObjs[0].links:
# Удаляем ссылки
os.unlink(linkRm[1])
scanObjs[0].dirs.sort(lambda x, y: cmp(len(y), len(x)))
for dirRm in scanObjs[0].dirs:
# Удаляем директории
os.rmdir(dirRm)
os.rmdir(rmDir)
return True
def mountUserRes(self, userName, sync=True):
"""Монтирование пользовательских ресурсов и синхронизация настроек"""
# Имя пользователя
@ -1195,11 +1220,30 @@ install/6intranet" %(domain,servDn,unixDN,bindDn,bindPw)
return False
# Если на текущем сервере в ресурсе unix есть файлы
# то синхронируем настройки
#if os.listdir(defaultPath):
if not self.syncUser(userName, homeDir, "login"):
# Отмонтируем пользовательские ресурсы в случае ошибки
self.errorAndUnmountUserRes = True
return False
if os.listdir(defaultPath):
if not self.syncUser(userName, homeDir, "login"):
# Отмонтируем пользовательские ресурсы в случае ошибки
self.errorAndUnmountUserRes = True
return False
else:
#Удаляем ненужные файлы
rmFiles = list(set(os.listdir(homeDir))-\
set(["Home","Disks","FTP",\
self.replLogoutFile]))
for rmFile in rmFiles:
delFile = os.path.join(homeDir,rmFile)
if os.path.islink(delFile):
os.unlink(delFile)
elif os.path.isfile(delFile):
os.remove(delFile)
elif os.path.isdir(delFile):
if not self.removeDir(delFile):
# Отмонтируем пользовательские ресурсы
# в случае ошибки
self.errorAndUnmountUserRes = True
return False
elif stat.S_ISSOCK(os.stat(delFile)[stat.ST_MODE]):
os.remove(delFile)
# Отмонтируем ресурс
textLine = self.umountSleepPath(defaultPath)
if not textLine:

Loading…
Cancel
Save