def validateToken(self, token): userDao = UserDao() try: user = userDao.getUser(token) if user == None: return ResponseHelper.generateErrorResponse("Invalid token") return user except Exception as ex: return ResponseHelper.generateErrorResponse( '''Valid user exception: {}'''.format(str(ex)))
def deleteUser(self, user, token): userToken = self.validateToken(token) if 'error' in userToken: return userToken userDao = UserDao() userAdmin = userDao.getAdminUser(userToken['id']) if userAdmin == None: return ResponseHelper.generateErrorResponse("Sorry! You are not allowed to delete user!") userDao.deleteUser(user) return ResponseHelper.generateSuccessResponse(None)
def validateToken(self, token): userDao = UserDao() user = userDao.getUser(token) if user == None: return ResponseHelper.generateErrorResponse("Invalid token") else: return user
def updateSkuState(self, sku, token): user = self.validateToken(token) if 'error' in user: return user skudao = SkuDao() skudao.updateState(sku) return ResponseHelper.generateSuccessResponse(None)
def getAll(self, token): user = self.validateToken(token) if 'error' in user: return user skudao = SkuDao() skus = skudao.getAll(user) return ResponseHelper.generateSuccessResponse(skus)
def updatePw(self, user, token): userDao = UserDao() userDB = userDao.getUserUpdatePW(token) if (userDB == None): return ResponseHelper.generateErrorResponse("Account not exist!") if bcrypt.checkpw(user['oldpass'].encode('utf-8'), userDB['password'].encode('utf-8')): password = user['newpass'].encode('utf-8') user['newpass'] = bcrypt.hashpw(password, bcrypt.gensalt()) user['newpass'] = user['newpass'].decode('utf-8') user = userDao.updatePw(user, token) if not user: return ResponseHelper.generateErrorResponse("System error, please try again") return ResponseHelper.generateSuccessResponse(user) else: return ResponseHelper.generateErrorResponse("Password is invalid")
def updateUser(self, user, token): userToken = self.validateToken(token) if 'error' in userToken: return userToken else: password = user['password'].encode('utf-8') user['password'] = bcrypt.hashpw(password, bcrypt.gensalt()) user['password'] = user['password'].decode('utf-8') userDao = UserDao() userAdmin = userDao.getAdminUser(userToken['id']) if userAdmin == None: return ResponseHelper.generateErrorResponse("Sorry! You are not allowed to update user!") userDao.updateUser(user) return ResponseHelper.generateSuccessResponse(None)
def login(self, user): userDao = UserDao() userDB = userDao.getUserByUsername(user['username']) if (userDB == None): return ResponseHelper.generateErrorResponse("Username is invalid") if bcrypt.checkpw(user['password'].encode('utf-8'), userDB['password'].encode('utf-8')): token = jwt.encode({'user' : 'username', 'createdAt': datetime.datetime.utcnow().isoformat()}, 'leoz') user['id'] = userDB['id'] user['token'] = token.decode("utf-8") user['username'] = userDB['username'] # using lazada_user_name in database instead. user['password'] = None user = userDao.updateUserToken(user) if not user: return ResponseHelper.generateErrorResponse("System error, please try again") return ResponseHelper.generateSuccessResponse(user) else: return ResponseHelper.generateErrorResponse("Password is invalid")
def insertUser(self, user, token): userToken = self.validateToken(token) if 'error' in userToken: return userToken userDao = UserDao() userAdmin = userDao.getAdminUser(userToken['id']) if userAdmin == None: return ResponseHelper.generateErrorResponse("Sorry! You are not allowed to insert new user!") userDB = userDao.getUserByUsername(user['username']) if (userDB != None): return ResponseHelper.generateErrorResponse("Username is already used") else: password = user['password'].encode('utf-8') user['password'] = bcrypt.hashpw(password, bcrypt.gensalt()) userDao.insert(user) return ResponseHelper.generateSuccessResponse(user)
def getAllHistory(self, token): user = self.validateToken(token) if 'error' in user: return user historyDao = HistoryDao() result = historyDao.getAllHistory(user) if 'error' in result: return ResponseUtils.generateErrorResponse(result['error']) for history in result: history['enemy_json'] = json.loads(history['enemy_json']) return ResponseHelper.generateSuccessResponse(result)
def register(self, user): passwordOriginal = user['password'] password = user['password'].encode('utf-8') user['password'] = bcrypt.hashpw(password, bcrypt.gensalt()).decode('utf-8') user['certain_size'] = SkuConfig.DEFAULT_CERTAIN_SIZE # Check user exist userDao = UserDao() userDB = userDao.getUserByUsername(user['username']) if (userDB != None): return ResponseHelper.generateErrorResponse("Username is already used") # Insert new user userDao.insert(user) # Login it in loginUser = { "username": user['username'], "password": passwordOriginal } return self.login(loginUser)