예제 #1
0
 def post(self, request):
     requestCon = json.loads(request.body)
     uservalidator = UserValidator()
     uservalidator.setUsername(requestCon["un"])
     if uservalidator.usernameValidate() == True:
         with UserModel() as usermodel:
             usermodel.setUsername(requestCon["un"])
             usermodel.setEmail(requestCon["em"])
             rows = usermodel.queryForgetPassword()
         if rows == None:
             return HttpResponse("notfound", content_type="text/plain")
         else:
             newSalt = hashlib.md5(os.urandom(32)).hexdigest()
             try:
                 send_mail(
                     'Reset password for your NFS account',
                     'Hello ' + requestCon["un"] +
                     ',\n \nPlease copy the following code to reset password:\n \n'
                     + newSalt + '\n \nThanks,\nNFS',
                     '*****@*****.**', [requestCon["em"]],
                     fail_silently=False)
                 with UserModel() as usermodel:
                     usermodel.setUsername(requestCon["un"])
                     usermodel.setEmail(requestCon["em"])
                     usermodel.updateValidate(newSalt)
                 return HttpResponse("success", content_type="text/plain")
             except SMTPException:
                 return HttpResponse("fail", content_type="text/plain")
     else:
         return HttpResponse("notvalid", content_type="text/plain")
예제 #2
0
 def post(self, request):
     validator = UserValidator() # validate input
     encryptpw = EncryptionPassword() # encrypt password
     if "username" not in request.session:
         regInfo = json.loads(request.body)
         validator.setUsername(regInfo["un"])
         validator.setPassword(regInfo["pw"])
         encryptpw.setPassword(regInfo["pw"])
         if validator.usernameValidate() == True and validator.passwordValidate() == True:
             with UserModel() as usermodel:
                 usermodel.setUsername(regInfo["un"])
                 rows = usermodel.queryRegister()
             if rows == None:
                 hashList = encryptpw.encryptPw()
                 hashPW = hashList[0]
                 newSalt = hashList[1]
                 with UserModel() as usermodel:
                     usermodel.setUsername(regInfo["un"])
                     usermodel.setPassword(hashPW)
                     usermodel.setSalt(newSalt)
                     usermodel.setEmail(regInfo["em"])
                     usermodel.setFirstname(regInfo["fn"])
                     usermodel.setLastname(regInfo["ln"])
                     usermodel.insertRegister()
                 request.session["username"] = regInfo["un"]
                 return HttpResponse(json.dumps({'r':"success",'un':request.session["username"]}), content_type="application/json") 
             else:
                 return HttpResponse(json.dumps({'r':"exist"}), content_type="application/json") 
         else:
             return HttpResponse(json.dumps({'r':"notvalid"}), content_type="application/json") 
     else:
         return HttpResponse(json.dumps({'r':"loggedin",'un':request.session["username"]}), content_type="application/json") 
예제 #3
0
 def post(self, request):
     validator = UserValidator() # validate input
     encryptpw = EncryptionPassword() # encrypt password
     if "username" not in request.session:
         regInfo = json.loads(request.body)
         logging.info(regInfo)
         validator.setUsername(regInfo['un'])
         validator.setPassword(regInfo['pw'])
         encryptpw.setPassword(regInfo['pw'])         
         if validator.usernameValidate() == True and validator.passwordValidate() == True:
             with UserModel() as usermodel:
                 usermodel.setUsername(regInfo['un'])
                 salt = usermodel.querySalt()[11]
                 hashPW = encryptpw.encryptPw(salt)[0]
                 usermodel.setPassword(hashPW)
                 rows = usermodel.queryLogin()
                 logging.info(rows)
                 if rows != None:
                     usermodel.updateLoginDate()
             if rows != None:
                 request.session["username"] = regInfo['un']
                 return HttpResponse(json.dumps({'r':1,'un':request.session["username"]}), content_type="application/json") # successfully login
             else:
                 return HttpResponse(json.dumps({'r':0}), content_type="application/json") # incorrect username/password
         else:
             return HttpResponse(json.dumps({'r':3}), content_type="application/json")# username/password not validated
     else:
         return HttpResponse(json.dumps({'r':2,'un':request.session["username"]}), content_type="application/json") # already login
예제 #4
0
class TestUsernameValidator(unittest.TestCase):

    def setUp(self): 
        print self._testMethodName + " begins now......"
        self.validator = UserValidator()
    
    def test_username_empty_fail(self):
        self.validator.setUsername("")
        self.assertFalse(self.validator.usernameValidate())
        
    def test_username_onlynum_fail(self):
        self.validator.setUsername("12345")
        self.assertFalse(self.validator.usernameValidate())

    def test_username_startsnum_fail(self):
        self.validator.setUsername("12345ting")
        self.assertFalse(self.validator.usernameValidate())

    def test_username_short_fail(self):
        self.validator.setUsername("ti")
        self.assertFalse(self.validator.usernameValidate())
        
    def test_username_valid_success(self):
        self.validator.setUsername("ting123")
        self.assertTrue(self.validator.usernameValidate())
  
    def tearDown(self):
        del self.validator
예제 #5
0
 def post(self, request):
     requestCon = json.loads(request.body)
     uservalidator = UserValidator()
     uservalidator.setUsername(requestCon["un"])
     with UserModel() as usermodel:
         usermodel.setUsername(requestCon["un"])
         usermodel.setEmail(requestCon["em"])
         rows = usermodel.queryForgetPassword()
     if requestCon["code"] == rows[12]:
         return HttpResponse("success", content_type="text/plain")
     else:
         return HttpResponse("fail", content_type="text/plain")
예제 #6
0
 def post(self, request):
     requestCon = json.loads(request.body)
     uservalidator = UserValidator()
     uservalidator.setUsername(requestCon["un"])
     with UserModel() as usermodel:
         usermodel.setUsername(requestCon["un"])
         usermodel.setEmail(requestCon["em"])
         rows = usermodel.queryForgetPassword()
     if requestCon["code"] == rows[12]:
         return HttpResponse("success", content_type="text/plain")
     else:
         return HttpResponse("fail", content_type="text/plain")
예제 #7
0
 def post(self, request):
     validator = UserValidator() # validate input
     if "username" in request.session:
         requestCon = json.loads(request.body)
         validator.setUsername(requestCon['un'])
         if validator.usernameValidate() == True:
             with UserModel() as usermodel:
                 usermodel.setUsername(requestCon['un'])
                 rows = usermodel.queryRegister()
             if rows == None:
                 return HttpResponse(json.dumps('notfound'), content_type="application/json")
             else:
                 return HttpResponse(json.dumps('success'), content_type="application/json")
         else:
             return HttpResponse(json.dumps('notvalid'), content_type="application/json")
     else:
         return HttpResponse(json.dumps('notlogin'), content_type="application/json")
예제 #8
0
 def post(self, request):
     validator = UserValidator() # validate input
     if "username" not in request.session:
         regInfo = json.loads(request.body)
         validator.setUsername(regInfo["un"])
         if validator.usernameValidate() == True:
             with UserModel() as usermodel:
                 usermodel.setUsername(regInfo["un"])
                 rows = usermodel.queryRegister()
             if rows == None:
                 return HttpResponse("success", content_type="text/plain") # username does not exist
             else:
                 return HttpResponse("exist", content_type="text/plain") # username exists
         else:
             return HttpResponse("notvalid", content_type="text/plain") # username exists
     else:
         return HttpResponse("loggedin", content_type="text/plain") # username does not exist
예제 #9
0
 def post(self, request):
     validator = UserValidator()  # validate input
     encryptpw = EncryptionPassword()  # encrypt password
     if "username" not in request.session:
         regInfo = json.loads(request.body)
         validator.setUsername(regInfo["un"])
         validator.setPassword(regInfo["pw"])
         encryptpw.setPassword(regInfo["pw"])
         if validator.usernameValidate(
         ) == True and validator.passwordValidate() == True:
             with UserModel() as usermodel:
                 usermodel.setUsername(regInfo["un"])
                 rows = usermodel.queryRegister()
             if rows == None:
                 hashList = encryptpw.encryptPw()
                 hashPW = hashList[0]
                 newSalt = hashList[1]
                 with UserModel() as usermodel:
                     usermodel.setUsername(regInfo["un"])
                     usermodel.setPassword(hashPW)
                     usermodel.setSalt(newSalt)
                     usermodel.setEmail(regInfo["em"])
                     usermodel.setFirstname(regInfo["fn"])
                     usermodel.setLastname(regInfo["ln"])
                     usermodel.insertRegister()
                 request.session["username"] = regInfo["un"]
                 return HttpResponse(json.dumps({
                     'r':
                     "success",
                     'un':
                     request.session["username"]
                 }),
                                     content_type="application/json")
             else:
                 return HttpResponse(json.dumps({'r': "exist"}),
                                     content_type="application/json")
         else:
             return HttpResponse(json.dumps({'r': "notvalid"}),
                                 content_type="application/json")
     else:
         return HttpResponse(json.dumps({
             'r': "loggedin",
             'un': request.session["username"]
         }),
                             content_type="application/json")
예제 #10
0
 def post(self, request):
     validator = UserValidator()  # validate input
     encryptpw = EncryptionPassword()  # encrypt password
     if "username" not in request.session:
         regInfo = json.loads(request.body)
         logging.info(regInfo)
         validator.setUsername(regInfo['un'])
         validator.setPassword(regInfo['pw'])
         encryptpw.setPassword(regInfo['pw'])
         if validator.usernameValidate(
         ) == True and validator.passwordValidate() == True:
             with UserModel() as usermodel:
                 usermodel.setUsername(regInfo['un'])
                 salt = usermodel.querySalt()[11]
                 hashPW = encryptpw.encryptPw(salt)[0]
                 usermodel.setPassword(hashPW)
                 rows = usermodel.queryLogin()
                 logging.info(rows)
                 if rows != None:
                     usermodel.updateLoginDate()
             if rows != None:
                 request.session["username"] = regInfo['un']
                 return HttpResponse(
                     json.dumps({
                         'r': 1,
                         'un': request.session["username"]
                     }),
                     content_type="application/json")  # successfully login
             else:
                 return HttpResponse(json.dumps({'r': 0}),
                                     content_type="application/json"
                                     )  # incorrect username/password
         else:
             return HttpResponse(json.dumps({'r': 3}),
                                 content_type="application/json"
                                 )  # username/password not validated
     else:
         return HttpResponse(
             json.dumps({
                 'r': 2,
                 'un': request.session["username"]
             }),
             content_type="application/json")  # already login
예제 #11
0
 def post(self, request):
     validator = UserValidator()  # validate input
     if "username" in request.session:
         requestCon = json.loads(request.body)
         validator.setUsername(requestCon['un'])
         if validator.usernameValidate() == True:
             with UserModel() as usermodel:
                 usermodel.setUsername(requestCon['un'])
                 rows = usermodel.queryRegister()
             if rows == None:
                 return HttpResponse(json.dumps('notfound'),
                                     content_type="application/json")
             else:
                 return HttpResponse(json.dumps('success'),
                                     content_type="application/json")
         else:
             return HttpResponse(json.dumps('notvalid'),
                                 content_type="application/json")
     else:
         return HttpResponse(json.dumps('notlogin'),
                             content_type="application/json")
예제 #12
0
 def post(self, request):
     validator = UserValidator()  # validate input
     if "username" not in request.session:
         regInfo = json.loads(request.body)
         validator.setUsername(regInfo["un"])
         if validator.usernameValidate() == True:
             with UserModel() as usermodel:
                 usermodel.setUsername(regInfo["un"])
                 rows = usermodel.queryRegister()
             if rows == None:
                 return HttpResponse(
                     "success",
                     content_type="text/plain")  # username does not exist
             else:
                 return HttpResponse(
                     "exist", content_type="text/plain")  # username exists
         else:
             return HttpResponse(
                 "notvalid", content_type="text/plain")  # username exists
     else:
         return HttpResponse(
             "loggedin",
             content_type="text/plain")  # username does not exist
예제 #13
0
 def post(self, request):
     requestCon = json.loads(request.body)
     uservalidator = UserValidator()
     uservalidator.setUsername(requestCon["un"])
     if uservalidator.usernameValidate() == True:
         with UserModel() as usermodel:
             usermodel.setUsername(requestCon["un"])
             usermodel.setEmail(requestCon["em"])
             rows = usermodel.queryForgetPassword()
         if rows == None:
             return HttpResponse("notfound", content_type="text/plain")
         else:
             newSalt = hashlib.md5(os.urandom(32)).hexdigest()
             try:
                 send_mail('Reset password for your NFS account', 'Hello '+requestCon["un"]+',\n \nPlease copy the following code to reset password:\n \n'+newSalt+'\n \nThanks,\nNFS', '*****@*****.**',[requestCon["em"]], fail_silently=False)
                 with UserModel() as usermodel:
                     usermodel.setUsername(requestCon["un"])
                     usermodel.setEmail(requestCon["em"])
                     usermodel.updateValidate(newSalt)
                 return HttpResponse("success", content_type="text/plain")
             except SMTPException:
                 return HttpResponse("fail", content_type="text/plain")
     else:
         return HttpResponse("notvalid", content_type="text/plain")