def do_post(username, password, users_data, **kwargs): """ Register user account """ _db = get_db() dbc = _db.cursor() username = username.lower() if check_user_registered(dbc, username): return base_common.msg.error(msgs.USERNAME_ALREADY_TAKEN) if base_config.settings.STRONG_PASSWORD: result, server_message = apphooks.check_password_is_valid(username, password, users_data, **kwargs) if not result: return base_common.msg.error(server_message) u_id = sequencer().new('u') if not u_id: return base_common.msg.error(msgs.ERROR_SERIALIZE_USER) quser = apphooks.prepare_user_query(u_id, username, password, users_data, **kwargs) if not quser: log.critical('Error checking users data and create query') return base_common.msg.error(msgs.ERROR_REGISTER_USER) try: dbc.execute(quser) except IntegrityError as e: log.critical('User registration: {}'.format(e)) return base_common.msg.error(msgs.ERROR_REGISTER_USER) tk = get_token(u_id, dbc) if not tk: return base_common.msg.error('Cannot login user') _db.commit() response = {'token': tk} if users_data and hasattr(apphooks, 'post_register_digest'): post_d = apphooks.post_register_digest(u_id, username, password, users_data, **kwargs) if post_d == False: log.critical('Error user post registration digest') return base_common.msg.error(msgs.ERROR_POST_REGISTRATION) if isinstance(post_d, dict): response.update(post_d) return base_common.msg.put_ok(response)
def do_post(username, password, users_data, **kwargs): """ Register user account """ _db = get_db() dbc = _db.cursor() username = username.lower() if check_user_registered(dbc, username): return base_common.msg.error(msgs.USERNAME_ALREADY_TAKEN) if base_config.settings.STRONG_PASSWORD: result, server_message = apphooks.check_password_is_valid(username, password, users_data, **kwargs) if not result: return base_common.msg.error(server_message) u_id = sequencer().new("u") if not u_id: return base_common.msg.error(msgs.ERROR_SERIALIZE_USER) quser = apphooks.prepare_user_query(u_id, username, password, users_data, **kwargs) if not quser: log.critical("Error checking users data and create query") return base_common.msg.error(msgs.ERROR_REGISTER_USER) try: dbc.execute(quser) except IntegrityError as e: log.critical("User registration: {}".format(e)) return base_common.msg.error(msgs.ERROR_REGISTER_USER) tk = get_token(u_id, dbc) if not tk: return base_common.msg.error("Cannot login user") _db.commit() response = {"token": tk} if users_data and hasattr(apphooks, "post_register_digest"): post_d = apphooks.post_register_digest(u_id, username, password, users_data, **kwargs) if post_d == False: log.critical("Error user post registration digest") return base_common.msg.error(msgs.ERROR_POST_REGISTRATION) if isinstance(post_d, dict): response.update(post_d) return base_common.msg.put_ok(response)
def do_post(newusername, password, redirect_url, **kwargs): """ Change username """ _db = get_db() dbc = _db.cursor() if check_user_registered(dbc, newusername): return base_common.msg.error(msgs.USERNAME_ALREADY_TAKEN) tk = kwargs['auth_token'] dbuser = get_user_by_token(_db, tk) if not check_password(dbuser.password, dbuser.username, password): log.critical('Wrong users password: {}'.format(password)) return base_common.msg.error(msgs.WRONG_PASSWORD) passwd = format_password(newusername, password) # SAVE HASH FOR USERNAME CHANGE rh = BaseAPIRequestHandler() # encryptuj pass, successfully landing page data = {'cmd': 'change_username', 'newusername': newusername, 'id_user': dbuser.id_user, 'password': passwd, 'redirect_url': redirect_url} rh.set_argument('data', json.dumps(data, ensure_ascii=False)) kwargs['request_handler'] = rh res = base_api.hash2params.save_hash.do_put(json.dumps(data, ensure_ascii=False), **kwargs) if 'http_status' not in res or res['http_status'] != 200: return base_common.msg.error('Cannot handle forgot password') h = res['h'] if not change_username_hook(h, newusername, dbuser, **kwargs): log.critical('Error finishing username change process') return base_common.msg.error(msgs.ERROR_CHANGE_USERNAME) return base_common.msg.post_ok(msgs.CHANGE_USERNAME_REQUEST)