Добавлена проверка корректности профиля перед загрузкой на сервер.

git-svn-id: http://svn.calculate.ru/calculate2/calculate-client/trunk@1096 c91db197-33c1-4113-bf15-f8a5c547ca64
develop
mhiretskiy 15 years ago
parent c686d0688b
commit a9ce61880c

@ -431,6 +431,7 @@ conjunction with the 'login' or 'logout'")
def errorExit(self):
"""Отмонтирование пользовательских ресурсов при ошибке"""
# TODO: добавить удаление приватных файлов
if self.errorAndUnmountUserRes and self.userName:
self.umountUserResNoSync(self.userName, False, False, False, True)
@ -1146,10 +1147,24 @@ install/6intranet" %(domain,servDn,unixDN,bindDn,bindPw)
# Отмонтируем пользовательские ресурсы в случае ошибки
self.errorAndUnmountUserRes = True
return False
if not self.syncUser(userName, homeDir, "logout", uid, gid):
# проверяем произведен ли корректный вход в систему -
# в этом случае закачиваем профиль с локальной машины на сервер
logOutFile = os.path.join(homeDir,self.replLogoutFile)
try:
# проверяем logOutFile: содержит ли он "PROCESS"
FD = open(logOutFile)
exitStr = FD.read().strip()
FD.close()
if exitStr != "PROCESS":
if not self.syncUser(userName, homeDir, "logout", uid, gid):
raise OSError()
except:
# Удаляем приватные файлы
self.removePrivateFiles(homeDir)
# Отмонтируем пользовательские ресурсы в случае ошибки
self.errorAndUnmountUserRes = True
return False
# Удаляем приватные файлы
self.removePrivateFiles(homeDir)
flagError = False
@ -1379,6 +1394,9 @@ install/6intranet" %(domain,servDn,unixDN,bindDn,bindPw)
os.makedirs(homeDir)
os.chown(homeDir,uid,gid)
os.chmod(homeDir,0700)
# записываем в .logout файл статус "в процессе"
logOutFile = os.path.join(homeDir,self.replLogoutFile)
self.createUserFile(logOutFile,"PROCESS", uid, gid)
# Получаем пароль пользователя из ключей ядра
userPwd = _cl_keys.getKey(userName)
if not userPwd:
@ -1572,11 +1590,13 @@ install/6intranet" %(domain,servDn,unixDN,bindDn,bindPw)
self.errorAndUnmountUserRes = True
return False
if pathReplRun:
logOutFile = os.path.join(homeDir,self.replLogoutFile)
if replErrorMount or replErrorSync:
self.createUserFile(logOutFile,"ERROR", uid, gid)
else:
self.createUserFile(logOutFile,"SUCCESS", uid, gid)
else:
self.createUserFile(logOutFile,"SUCCESS", uid, gid)
self.printSUCCESS(_("Mount user resource in domain"))
self.printOK(_("Get a user profile in the domain") + " ...")
return True
@ -1711,11 +1731,13 @@ install/6intranet" %(domain,servDn,unixDN,bindDn,bindPw)
--exclude="/.mozilla/firefox/calculate.default/urlclassifier3.sqlite" \
--exclude="/.local/share/mime/mime.cache" \
--exclude="/.kde4/share/apps/nepomuk/repository/main/data" \
--exclude="/.logout" \
--filter="P /.googleearth" --filter="P /Home" --filter="P /Disks" \
--filter="P /.local/share/akonadi/db_data" --filter="P /.VirtualBox" \
--filter="P /.mozilla/firefox/calculate.default/urlclassifier3.sqlite" \
--filter="P /.local/share/mime/mime.cache" \
--filter="P /.kde4/share/apps/nepomuk/repository/main/data" \
--filter="P /.logout" \
--filter="P /FTP" -a -x -v -v -v -v %s/ %s/' %(homeProfile,userHome)
elif sync == "logout":
if os.path.exists(userHome) and os.listdir(userHome) and\

Loading…
Cancel
Save