Example #1
0
	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)
Example #2
0
	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")
Example #3
0
	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)