def create_user(nickname, email, password, gender): """Sign up a user""" # check weather the email has been registered assert UserHelper.get_by_email(email) is None assert isinstance(nickname, basestring) assert isinstance(email, basestring) assert isinstance(password, basestring) assert gender in [0, 1] # Prepare password salt = binascii.hexlify(os.urandom(32)) salted_password = UserHelper._password_hash(password, salt) new_user = User() new_user.nickname = nickname new_user.email = email new_user.salt = salt new_user.salted_password = salted_password new_user.gender = gender new_user.save() return new_user