コード例 #1
0
ファイル: forgot_password.py プロジェクト: ivanjankoviic/BASE
def do_put(username, *args, **kwargs):
    """
    Forgot password
    """

    _db = get_db()

    request = kwargs['request_handler']

    username = username.lower()

    if not check_user_exists(username, _db):
        log.critical('User check fail')
        return base_common.msg.error(msgs.USER_NOT_FOUND)

    # GET HASH FOR FORGOTTEN PASSWORD
    rh = BaseAPIRequestHandler()
    data = {'cmd': 'forgot_password', 'username': username}
    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), *args, **kwargs)
    if 'http_status' not in res or res['http_status'] != 200:
        return base_common.msg.error('Cannot handle forgot password')

    tk = res['h']

    if not forgot_password_hook(request, username, tk, **kwargs):
        log.critical('Error finishing username change process')
        return base_common.msg.error(msgs.ERROR_PASSWORD_RESTORE)

    #
    # message = get_email_message(request, username, tk)
    #
    # # SAVE EMAIL FOR SENDING
    # rh1 = BaseAPIRequestHandler()
    # rh1.set_argument('sender', support_mail)
    # rh1.set_argument('receiver', username)
    # rh1.set_argument('message', message)
    # kwargs['request_handler'] = rh1
    # res = base_api.mail_api.save_mail.do_put(support_mail, username, message, *args, **kwargs)
    # if 'http_status' not in res or res['http_status'] != 204:
    #     return base_common.msg.error('Error finishing change password request')

    return base_common.msg.post_ok(msgs.OK)
コード例 #2
0
ファイル: forgot_password.py プロジェクト: joomlamladen/BASE
def do_put(request, *args, **kwargs):
    """
    Forgot password
    :param username: users username, string, True
    :return:  200, OK
    :return:  404, notice
    """

    log = request.log
    _db = get_db()

    try:
        username = request.get_argument('username')
    except tornado.web.MissingArgumentError:
        log.critical('Missing argument username')
        return base_common.msg.error(msgs.MISSING_REQUEST_ARGUMENT)

    if not check_user_exists(username, _db, log):
        log.critical('User check fail')
        return base_common.msg.error(msgs.USER_NOT_FOUND)

    # GET HASH FOR FORGOTTEN PASSWORD
    rh = BaseAPIRequestHandler(log)
    data = {'cmd': 'forgot_password', 'username': username}
    rh.set_argument('data', json.dumps(data))
    res = base_api.hash2params.save_hash.do_put(rh)
    if 'http_status' not in res or res['http_status'] != 200:
        return base_common.msg.error('Cannot handle forgot password')

    tk = res['h']

    message = get_email_message(request, username, tk)

    # SAVE EMAIL FOR SENDING
    rh1 = BaseAPIRequestHandler(log)
    rh1.set_argument('sender', support_mail)
    rh1.set_argument('receiver', username)
    rh1.set_argument('message', message)
    res = base_api.mail_api.save_mail.do_put(rh1)
    if 'http_status' not in res or res['http_status'] != 204:
        return base_common.msg.error('Error finishing change password request')

    return base_common.msg.post_ok(msgs.OK)
コード例 #3
0
ファイル: forgot_password.py プロジェクト: djorovic/BASE
def do_put(request, *args, **kwargs):
    """
    Forgot password
    :param username: users username, string, True
    :return:  200, OK
    :return:  404, notice
    """

    log = request.log
    _db = get_md2db()

    try:
        username = request.get_argument('username')
    except tornado.web.MissingArgumentError:
        log.critical('Missing argument username')
        return base_common.msg.error(msgs.MISSING_REQUEST_ARGUMENT)

    if not check_user_exists(username, _db, log):
        log.critical('User check fail')
        return base_common.msg.error(msgs.USER_NOT_FOUND)

    # GET HASH FOR FORGOTTEN PASSWORD
    rh = BaseAPIRequestHandler(log)
    data = {'cmd': 'forgot_password', 'username': username}
    rh.set_argument('data', json.dumps(data))
    res = base_api.hash2params.save_hash.do_put(rh)
    if 'http_status' not in res or res['http_status'] != 200:
        return base_common.msg.error('Cannot handle forgot password')

    tk = res['h']

    message = get_email_message(request, username, tk)

    # SAVE EMAIL FOR SENDING
    rh1 = BaseAPIRequestHandler(log)
    rh1.set_argument('sender', support_mail)
    rh1.set_argument('receiver', username)
    rh1.set_argument('message', message)
    res = base_api.mail_api.save_mail.do_put(rh1)
    if 'http_status' not in res or res['http_status'] != 204:
        return base_common.msg.error('Error finishing change password request')

    return base_common.msg.post_ok(msgs.OK)