Esempio n. 1
0
 def __init__(self):
     """ """
     self.outfile = None
     self.remain = 0
     self.crc = 0
     self.isFile = True
     self.log = adminLog()
Esempio n. 2
0
    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()
Esempio n. 3
0
    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")
Esempio n. 4
0
    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")
Esempio n. 5
0
 def __init__(self):
     """ """
     self.outfile = None
     self.remain = 0
     self.crc = 0
     self.log = logHandler.adminLog()