|
|
|
@ -163,7 +163,7 @@ org.kde.kdialog.ProgressDialog'
|
|
|
|
|
close_fds=True,
|
|
|
|
|
env=env, shell=True)
|
|
|
|
|
pipe.stdin.close()
|
|
|
|
|
# wait for terminate kdialog, which say dbus dialog id
|
|
|
|
|
# wait for terminate kdialog, which say dbus dialog id
|
|
|
|
|
if pipe.poll() is None:
|
|
|
|
|
# ожидание в 5 сек
|
|
|
|
|
for t in range(500):
|
|
|
|
@ -171,12 +171,12 @@ org.kde.kdialog.ProgressDialog'
|
|
|
|
|
if pipe.poll() != None:
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
# waiting is ok
|
|
|
|
|
# waiting is ok
|
|
|
|
|
if pipe.poll() == 0:
|
|
|
|
|
self.kdialog = pipe.stdout.readline().strip()
|
|
|
|
|
while not "org.kde.kdialog" in self.kdialog:
|
|
|
|
|
s = pipe.stdout.readline()
|
|
|
|
|
# if bad result of kdialog then shutdown dialog
|
|
|
|
|
# if bad result of kdialog then shutdown dialog
|
|
|
|
|
if s == "":
|
|
|
|
|
pipe.stdout.close()
|
|
|
|
|
pipe.stderr.close()
|
|
|
|
@ -186,7 +186,7 @@ org.kde.kdialog.ProgressDialog'
|
|
|
|
|
self.setTitle(self.title)
|
|
|
|
|
pipe.stdout.close()
|
|
|
|
|
pipe.stderr.close()
|
|
|
|
|
# waiting is failed
|
|
|
|
|
# waiting is failed
|
|
|
|
|
else:
|
|
|
|
|
pipe.stdout.close()
|
|
|
|
|
pipe.stderr.close()
|
|
|
|
@ -1629,6 +1629,15 @@ or ld_bind_dn or ld_bind_pw")
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def removeNoiseFiles(self, userHome):
|
|
|
|
|
"""Удаление файлов, создающих помехи работе dm"""
|
|
|
|
|
noiseFiles = ['.dmrc']
|
|
|
|
|
for nsFile in noiseFiles:
|
|
|
|
|
rmFile = os.path.join(userHome, nsFile)
|
|
|
|
|
if os.path.exists(rmFile):
|
|
|
|
|
os.remove(rmFile)
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def removePrivateFiles(self, userHome):
|
|
|
|
|
"""Удаление приватных файлов"""
|
|
|
|
|
privateFiles = ['.kde4/share/apps/kwallet/kdewallet.kwl',
|
|
|
|
@ -1803,6 +1812,8 @@ or ld_bind_dn or ld_bind_pw")
|
|
|
|
|
if exitStr != "process":
|
|
|
|
|
needSync = True
|
|
|
|
|
except:
|
|
|
|
|
# Удаляем файлы, мешающие работе dm
|
|
|
|
|
self.removeNoiseFiles(homeDir)
|
|
|
|
|
# Удаляем приватные файлы
|
|
|
|
|
self.removePrivateFiles(homeDir)
|
|
|
|
|
# Очищаем ключ в ядре
|
|
|
|
@ -1812,6 +1823,8 @@ or ld_bind_dn or ld_bind_pw")
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
if needSync and not self.syncUser(userName,homeDir,"logout",uid,gid):
|
|
|
|
|
# Удаляем файлы, мешающие работе dm
|
|
|
|
|
self.removeNoiseFiles(homeDir)
|
|
|
|
|
# Удаляем приватные файлы
|
|
|
|
|
self.removePrivateFiles(homeDir)
|
|
|
|
|
# Очищаем ключ в ядре
|
|
|
|
@ -1819,6 +1832,8 @@ or ld_bind_dn or ld_bind_pw")
|
|
|
|
|
# Отмонтируем пользовательские ресурсы в случае ошибки
|
|
|
|
|
self.errorAndUnmountUserRes = True
|
|
|
|
|
return False
|
|
|
|
|
# Удаляем файлы, мешающие работе dm
|
|
|
|
|
self.removeNoiseFiles(homeDir)
|
|
|
|
|
# Удаляем приватные файлы
|
|
|
|
|
self.removePrivateFiles(homeDir)
|
|
|
|
|
# Очищаем ключ в ядре
|
|
|
|
|