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 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 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)