예제 #1
0
    def test_addNewUser(self):
        email = "*****@*****.**"
        name = "TESTNAME"
        password = "******"
        salt = "$2b$12$IB/erL6YpE48btg6pQnDF."
        userIDAdmin = 1
        self.assertTrue(dbhandler.addNewUser(userIDAdmin, email, name, password, salt))
        self.assertEqual(1, dbhandler.checkEmail(email))
        info = dbhandler.getLogin(email)
        self.assertEqual(info['password'], password)
        self.assertEqual(info['salt'], salt)
        ID = dbhandler.getUserID(email)['ID']
        self.assertEqual(name, dbhandler.getUserNameFromID(ID)['name'])

        userID = 2
        self.assertFalse(dbhandler.addNewUser(userID, email, name, password, salt))
        # Clean up the mess made here ^
        connection = dbhandler.makeConnection()
        try:
            with connection.cursor() as cursor:
                sql = ("DELETE FROM users WHERE email = '{0}'")
                cursor.execute(sql.format(email))
            connection.commit()
        except Exception as e:
            return("Error: {0}. Error code is {1}".format(e, e.args[0]))
        finally:
            connection.close()
예제 #2
0
파일: core.py 프로젝트: sam-drew/teamchat
 def get(self, url):
     url = WSocketHandler.stripUrl(url)
     userEmail = self.get_secure_cookie("email")
     if userEmail != None:
         userEmail = userEmail.decode("utf-8")
         if dbhandler.checkEmail(userEmail) == True:
             userID = dbhandler.getUserID(userEmail)['ID']
             if dbhandler.checkChatPrivileges(userID, url) != False:
                 messageList = dbhandler.getRecentMessages(url)
                 if messageList != False:
                     messageList.reverse()
                     # For every message, add the human name.
                     for m in messageList:
                         userName = dbhandler.getUserName(m['memberID'])
                         m['uName'] = userName['name']
                 else:
                     messageList = []
                 isAdmin = dbhandler.checkChatAdmin(userID, url)
                 if isAdmin == True:
                     self.render("chatAdmin.html",
                                 messages=messageList,
                                 chatname=url,
                                 signuplink=url)
                 else:
                     self.render("chat.html",
                                 messages=messageList,
                                 chatname=url)
             else:
                 self.redirect("/home")
         else:
             self.redirect("/")
     else:
         self.redirect("/")
예제 #3
0
파일: core.py 프로젝트: sam-drew/teamchat
 def post(self, url):
     newEmail = self.get_argument("newEmail")
     doesEmailExist = dbhandler.checkEmail(newEmail)
     chatID = WSocketHandler.stripUrl(url)
     # If the email exists, procede to check if the actioner is admin etc.
     if doesEmailExist == 1:
         actioningUserEmail = self.get_secure_cookie("email").decode(
             "utf-8")
         actioningUserID = dbhandler.getUserID(actioningUserEmail)['ID']
         isAdmin = dbhandler.checkChatAdmin(actioningUserID, url)
         if isAdmin == True:
             newUserID = dbhandler.getUserID(newEmail)['ID']
             dbhandler.setPrivileges(newUserID, {
                 chatID: False,
             })
             self.redirect("/chat/{0}".format(chatID))
         else:
             self.redirect("/chat/{0}".format(chatID))
     else:
         self.redirect("/chat/{0}".format(chatID))
예제 #4
0
파일: core.py 프로젝트: sam-drew/teamchat
 def post(self):
     adminUserEmail = self.get_secure_cookie("email").decode("utf-8")
     adminUserID = dbhandler.getUserID(adminUserEmail)['ID']
     if dbhandler.checkAdmin(adminUserID) == True:
         chatName = self.get_argument("newChatName")
         chatID = dbhandler.addNewChat(chatName)
         # Chat ID's should always be an integer, if not, probably error.
         if isinstance(chatID, int) == True:
             userEmail = self.get_argument("initialChatUser")
             if dbhandler.checkEmail(userEmail) == 1:
                 userID = dbhandler.getUserID(userEmail)['ID']
                 url = ("/chat/{0}".format(chatID))
                 self.redirect(url)
             else:
                 url = ("/chat/{0}".format(chatID))
                 self.redirect(url)
         else:
             logging.error(chatID)
     else:
         self.redirect("/home")
예제 #5
0
 def post(self):
     info = []
     for argument in ["email1", "email2", "userPass1", "userPass2"]:
         info.append(self.get_argument(argument))
     logging.info("Attempt to add new user: {0}".format(info))
     alerts = []
     if info[0] != info[1]:
         alerts.append("Emails do not match")
         if info[2] != info[3]:
             alerts.append("Passwords do not match")
             logging.info("Failed to add new user; neither match")
             self.render("signup.html", alerts = alerts)
         else:
             self.render("signup.html", alerts = alerts)
             logging.info("Failed to add new user; emails don't match")
     elif info[2] != info[3]:
         alerts.append("Passwords do not match")
         logging.info("Failed to add new user; pwds don't match")
         self.render("signup.html", alerts = alerts)
     else:
         newEmail = info[0]
         if dbhandler.checkEmail(newEmail) == True:
             salt = (bcrypt.gensalt()).decode("utf-8")
             password = (hashPwd(info[2], salt)).decode("utf-8")
             returnValue = dbhandler.setUserInfo(newEmail, password, salt)
             if returnValue == True:
                 self.set_secure_cookie("email", info[0])
                 logging.info("Added new user successfully")
                 self.redirect("/home")
             else:
                 logging.error("Failed to add a new user")
                 logging.error(returnValue)
                 self.render("signup.html", alerts = ["Sign Up failed.",])
         else:
             alerts.append("Email address already in use, please try again.")
             self.render("signup.html", alerts = alerts)
예제 #6
0
 def test_CheckEmail(self):
     self.assertEqual(1, dbhandler.checkEmail("*****@*****.**"))