|
|
|
@ -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\
|
|
|
|
|