def post(self): if self.get_argument("auth")=="PCBOSS": requestType = self.get_argument("type") if requestType == "add_user": email = self.get_request("email") password = self.get_argument("password") first_name = self.get_argument("first_name") last_name = self.get_argument("last_name") if Database.addUser(email, Encryption.pwdHash(password), first_name, last_name): self.write("Success") else: self.write("Failure") elif requestType == "list_jobs": self.write(str(Database.listJobs())) elif requestType == "request_file": filenum = self.get_argument("file_number") self.write(str(Database.getJob(filenum))) elif requestType == "update_job_status": filenum = int(self.get_argument("file_number")) status = self.get_argument("status") Database.updateStatus(filenum, status) elif requestType == "recent_file": self.write(str(Database.mostRecentFile())) elif requestType == "recent_file_timestamp": self.write(str(Database.mostRecentTimestamp())) elif requestType == "get_users": self.write(str(Database.listUsers())) elif requestType == "edit_user": email = self.get_argument("email") fname = self.get_argument("first_name") lname = self.get_argument("last_name") pword = self.get_argument("password") Database.updateAccount(email, fname, lname, pword) else: self.write("Error: Unrecognized Request")
def authUser(uname, pwd): pwdHash = Encryption.pwdHash(pwd) if Database.isValid(uname,pwdHash): token = Encryption.sessionToken() #It's almost impossibly unlikely that we'll wind up with two identical tokens, #but if we did, it would be a hard bug to find. while token in validTokens: token = Encryption.sessionToken() validTokens[token] = uname return token return False
def authUser(uname, pwd): pwdHash = Encryption.pwdHash(pwd) if Database.isValid(uname,pwdHash): token = Encryption.sessionToken() #It's almost impossibly unlikely that we'll wind up with two identical tokens, #but if we did, it would be a hard bug to find. while not memcache.get(token) == None: token = Encryption.sessionToken() memcache.set(key=token, value=uname, time=KEY_STORE_TIME) return token return False
def updateAccount(token, fname, lname, pwd=False): if pwd: pwdHash = Encryption.pwdHash(pwd) Database.updateAccount(getUser(token), fname, lname, pwdHash) else: Database.updateAccount(getUser(token), fname, lname)