def __init__(self): """ """ self.outfile = None self.remain = 0 self.crc = 0 self.isFile = True self.log = adminLog()
def __init__(self, filePath, address=str(sys.argv[1]), send_port=1235, listen_port=1234): """ """ # server filepath self.dir_path = filePath # server address self.address_ = address self.send_port = send_port self.listen_port = listen_port self.adminUser = ["admin"] self.usersToPW = {"admin": "pw"} adminMachine = BabyLocalMachine("admin", "1", "randomIP", "path") self.usersToLM = {"admin": [adminMachine]} self.log = adminLog()
def handle(self): # self.request is the TCP socket connected to the client self.usertype = self.request.recv(1024).strip() self.usertype = str(self.usertype) booleanVal = "True" self.request.sendall(booleanVal + "\n") self.username = self.request.recv(1024).strip() self.username = str(self.username) isAdminUser = "******" if self.username in self.server.twisted_server.adminUser: isAdminUser = "******" self.request.sendall(isAdminUser + "\n") self.password = self.request.recv(1024).strip() self.password = str(self.password) correctUserandPW = "NA" if self.usertype == "newuser": if self.username in self.server.twisted_server.usersToPW: correctUserandPW = "Invalid" else: self.server.twisted_server.usersToPW[self.username] = self.password print self.server.twisted_server.usersToPW self.server.twisted_server.usersToLM[self.username] = [] if correctUserandPW != "Invalid": if self.password == self.server.twisted_server.usersToPW[self.username]: correctUserandPW = "True" else: correctUserandPW = "False" self.request.sendall(correctUserandPW + "\n") if correctUserandPW == "True": self.newPW = self.request.recv(1024).strip() self.newPW = str(self.newPW) if self.newPW != "N": self.server.twisted_server.usersToPW[self.username] = self.newPW print self.server.twisted_server.usersToPW booleanVal = "True" self.request.sendall(booleanVal + "\n") if correctUserandPW == "True" and isAdminUser == "False": #logs that user logged in correctly log = logHandler.adminLog(); log.add("User is successfully logging in...") self.macAddress = self.request.recv(1024).strip() self.macAddress = str(self.macAddress) isLocalMachine = "False" for localM in self.server.twisted_server.usersToLM[self.username]: if self.macAddress == localM.macAddress: isLocalMachine = localM.pathToDirectory localM.ipAddress = self.client_address[0] self.request.sendall(isLocalMachine + "\n") if isLocalMachine == "False": filePath = self.request.recv(1024).strip() filePath = str(filePath) self.request.sendall(booleanVal + "\n") lm = BabyLocalMachine(self.username, self.macAddress, self.client_address[0], filePath) self.server.twisted_server.usersToLM[self.username].append(lm) os.makedirs(os.path.join(self.server.twisted_server.dir_path, self.username)) if isAdminUser == "True" and correctUserandPW == "True": log = logHandler.adminLog(); log.add("Admin is successfully logging in...") self.adminUserRequest = "1" while (self.adminUserRequest != "0"): self.adminUserRequest = self.request.recv(1024).strip() self.adminUserRequest = str(self.adminUserRequest) trueResponse = "True" print self.adminUserRequest if (self.adminUserRequest == "1"): adminResults = str(self.server.twisted_server.usersToPW) self.request.sendall(adminResults + "\n") if (self.adminUserRequest == "2"): files = self.allAdminFiles(self.server.twisted_server.dir_path) self.request.sendall(files + "\n") if (self.adminUserRequest == "3"): self.request.sendall(trueResponse + "\n") userToPrint = self.request.recv(1024).strip() userToPrint = str(userToPrint) files = self.userAdminFiles(self.server.twisted_server.dir_path, userToPrint) self.request.sendall(files + "\n") if (self.adminUserRequest == "4"): self.request.sendall(trueResponse + "\n") usernameToDelete = self.request.recv(1024).strip() usernameToDelete = str(usernameToDelete) del self.server.twisted_server.usersToPW[usernameToDelete] del self.server.twisted_server.usersToLM[usernameToDelete] #DELETE THE FILES ASSOCIATED WITH THIS USERNAME ON THE SERVER SIDE for root, dirs, files in os.walk(os.path.join(self.server.twisted_server.dir_path, usernameToDelete)): for f in files: os.unlink(os.path.join(root, f)) for d in dirs: shutil.rmtree(os.path.join(root, d)) os.rmdir(os.path.join(self.server.twisted_server.dir_path, usernameToDelete)) self.request.sendall(trueResponse + "\n") if (self.adminUserRequest == "5"): self.request.sendall(trueResponse + "\n") usernameToDelete = self.request.recv(1024).strip() usernameToDelete = str(usernameToDelete) del self.server.twisted_server.usersToPW[usernameToDelete] del self.server.twisted_server.usersToLM[usernameToDelete] print str(self.server.twisted_server.usersToPW) print str(self.server.twisted_server.usersToLM) self.request.sendall(trueResponse + "\n") if (self.adminUserRequest == "6"): self.request.sendall(trueResponse + "\n") usernameToChangePW = self.request.recv(1024).strip() usernameToChangePW = str(usernameToChangePW) self.request.sendall(trueResponse + "\n") passwordToChange = self.request.recv(1024).strip() passwordToChange = str(passwordToChange) self.server.twisted_server.usersToPW[usernameToChangePW] = passwordToChange print str(self.server.twisted_server.usersToPW) self.request.sendall(trueResponse + "\n") if (self.adminUserRequest == "7"): #get history of connections involving synchronization stored as a string and put into self.adminResults self.request.sendall(adminResults + "\n")
def handle(self): # self.request is the TCP socket connected to the client self.usertype = self.request.recv(1024).strip() self.usertype = str(self.usertype) booleanVal = "True" self.request.sendall(booleanVal + "\n") self.username = self.request.recv(1024).strip() self.username = str(self.username) isAdminUser = "******" if self.username in self.server.twisted_server.adminUser: isAdminUser = "******" self.request.sendall(isAdminUser + "\n") self.password = self.request.recv(1024).strip() self.password = str(self.password) if self.usertype == "newuser": self.server.twisted_server.usersToPW[self.username] = self.password print self.server.twisted_server.usersToPW self.server.twisted_server.usersToLM[self.username] = [] print self.server.twisted_server.usersToPW # create new user directory #os.makedirs(os.path.join(self.server.twisted_server.dir_path, self.username)) if self.password == self.server.twisted_server.usersToPW[self.username]: correctUserandPW = "True" else: correctUserandPW = "False" self.request.sendall(correctUserandPW + "\n") if correctUserandPW == "True": #Logs that the user succesfully logged in log = logHandler.adminLog(); log.add("User is logging in with correct password!") self.newPW = self.request.recv(1024).strip() self.newPW = str(self.newPW) if self.newPW != "N": self.server.twisted_server.usersToPW[self.username] = self.newPW print self.server.twisted_server.usersToPW booleanVal = "True" self.request.sendall(booleanVal + "\n") if correctUserandPW == "True" and isAdminUser == "False": self.macAddress = self.request.recv(1024).strip() self.macAddress = str(self.macAddress) isLocalMachine = "False" for localM in self.server.twisted_server.usersToLM[self.username]: if self.macAddress == localM.macAddress: isLocalMachine = localM.pathToDirectory localM.ipAddress = self.client_address[0] self.request.sendall(isLocalMachine + "\n") if isLocalMachine == "False": filePath = self.request.recv(1024).strip() filePath = str(filePath) self.request.sendall(booleanVal + "\n") lm = BabyLocalMachine(self.username, self.macAddress, self.client_address[0], filePath) self.server.twisted_server.usersToLM[self.username].append(lm) os.makedirs(os.path.join(self.server.twisted_server.dir_path, self.username)) if isAdminUser == "True" and correctUserandPW == "True": log = logHandler.adminLog(); log.add("Admin is logging in with correct password!") self.adminUserRequest = "1" while (self.adminUserRequest != "0"): self.adminUserRequest = self.request.recv(1024).strip() self.adminUserRequest = str(self.adminUserRequest) trueResponse = "True" print self.adminUserRequest if (self.adminUserRequest == "1"): adminResults = str(self.server.twisted_server.usersToPW) self.request.sendall(adminResults + "\n") if (self.adminUserRequest == "2"): files = adminFiles("SERVER PATH") self.request.sendall(files + "\n") if (self.adminUserRequest == "3"): #number of per user total files and filesizes stored as a string and put into self.adminResults files = adminFiles("SERVER PATH") self.request.sendall(files + "\n") if (self.adminUserRequest == "4"): self.request.sendall(trueResponse + "\n") usernameToDelete = self.request.recv(1024).strip() usernameToDelete = str(usernameToDelete) del self.server.twisted_server.usersToPW[usernameToDelete] del self.server.twisted_server.usersToLM[usernameToDelete] #DELETE THE FILES ASSOCIATED WITH THIS USERNAME ON THE SERVER SIDE self.request.sendall(trueResponse + "\n") if (self.adminUserRequest == "5"): self.request.sendall(trueResponse + "\n") usernameToDelete = self.request.recv(1024).strip() usernameToDelete = str(usernameToDelete) del self.server.twisted_server.usersToPW[usernameToDelete] del self.server.twisted_server.usersToLM[usernameToDelete] print str(self.server.twisted_server.usersToPW) print str(self.server.twisted_server.usersToLM) self.request.sendall(trueResponse + "\n") if (self.adminUserRequest == "6"): self.request.sendall(trueResponse + "\n") usernameToChangePW = self.request.recv(1024).strip() usernameToChangePW = str(usernameToChangePW) self.request.sendall(trueResponse + "\n") passwordToChange = self.request.recv(1024).strip() passwordToChange = str(passwordToChange) self.server.twisted_server.usersToPW[usernameToChangePW] = passwordToChange print str(self.server.twisted_server.usersToPW) self.request.sendall(trueResponse + "\n") if (self.adminUserRequest == "7"): #get history of connections involving synchronization stored as a string and put into self.adminResults with open ("log.txt", "r") as myfile: adminResults=myfile.read().replace('\n', '') self.request.sendall(adminResults + "\n")
def __init__(self): """ """ self.outfile = None self.remain = 0 self.crc = 0 self.log = logHandler.adminLog()