Ejemplo n.º 1
0
def public_routes(app):
    """Register public user routes with the application.

    :param app: Flask application
    :type app: Flask
    """
    # pylint: disable=unused-variable

    @auth_basic.verify_password
    def verify_password(username_or_token, password):
        return Authentication.verify_password(username_or_token, password)

    @identity_loaded.connect_via(app)
    def on_identity_loaded(sender, identity):
        return Authentication.on_identity_loaded(sender, identity)

    public = Blueprint('public_users', __name__)

    # GET /token
    public.route('/token', methods=['GET'])(require_appkey(
        auth_basic.login_required(
            permission_user.require(
                http_exception=403)(get_auth_token))))  # noqa

    # GET /token/check
    public.route('/token/check', methods=['GET'])(require_appkey(
        auth_basic.login_required(
            permission_user.require(
                http_exception=403)(get_auth_token_check))))  # noqa

    app.register_blueprint(public)
Ejemplo n.º 2
0
def admin_routes(app):
    """Register admin user account routes with the application.

    :param app: Flask application
    :type app: Flask
    """

    admin = Blueprint('admin_user_account', __name__)

    # GET /user_account
    admin.route('/user_account', methods=['GET'])(
        require_appkey(
        auth_basic.login_required(
        permission_super_admin.require(http_exception=403)(
        check_password_expiration(
            get_account)))))  # noqa

    # PUT /user_account
    admin.route('/user_account', methods=['PUT'])(
        require_appkey(
        auth_basic.login_required(
        permission_super_admin.require(http_exception=403)(
        check_password_expiration(
            put_account)))))  # noqa

    # PUT /user_account/password
    admin.route('/user_account/password', methods=['PUT'])(
        require_appkey(
        auth_basic.login_required(
        permission_super_admin.require(http_exception=403)(
            put_password))))  # noqa

    app.register_blueprint(admin)
Ejemplo n.º 3
0
def admin_routes(app):
    """Register admin lcoations routes with the application.

    :param app: Flask application
    :type app: Flask
    """
    admin = Blueprint('admin_locations', __name__)

    # GET /countries
    admin.route("/countries", methods=['GET'])(
        admin.route("/countries/<int:page>", methods=['GET'])(
            admin.route(
                "/countries/<int:page>/<int(min=1, max=250):limit>",
                methods=['GET'])(  # noqa
                    require_appkey(
                        auth_basic.login_required(
                            permission_super_admin.require(http_exception=403)(
                                check_password_expiration(
                                    admin_get_countries)))))))  # noqa

    # GET /countries
    admin.route("/regions", methods=['GET'])(
        admin.route("/regions/<int:page>", methods=['GET'])(
            admin.route(
                "/regions/<int:page>/<int(min=1, max=250):limit>",
                methods=['GET'])(  # noqa
                    require_appkey(
                        auth_basic.login_required(
                            permission_super_admin.require(http_exception=403)(
                                check_password_expiration(
                                    admin_get_regions)))))))  # noqa

    app.register_blueprint(admin)
Ejemplo n.º 4
0
def public_routes(app):
    """Register locations routes with the application.

    :param app: Flask application
    :type app: Flask
    """
    public = Blueprint('public_locations', __name__)

    # GET /health_check
    public.route("/countries", methods=['GET'])(
        public.route("/countries/<int:page>", methods=['GET'])(
            public.route("/countries/<int:page>/<int(min=1, max=250):limit>",
                         methods=['GET'])(  # noqa
                             require_appkey(public_get_countries))))

    # GET /regions
    public.route("/regions/<string:country_code>", methods=['GET'])(
        public.route("/regions/<string:country_code>/<int:page>",
                     methods=['GET'])
        (
            public.route(
                "/regions/<string:country_code>/<int:page>/<int(min=1, max=250):limit>",
                methods=['GET'])(  # noqa
                    require_appkey(public_get_regions))))

    app.register_blueprint(public)
Ejemplo n.º 5
0
def admin_routes(app):
    """Register admin roles routes with the application.

    :param app: Flask application
    :type app: Flask
    """
    admin = Blueprint('admin_roles', __name__)

    # GET /roles
    admin.route("/roles", methods=['GET'])(
    admin.route("/roles/<int:page>", methods=['GET'])(
    admin.route("/roles/<int:page>/<int(min=1, max=100):limit>", methods=['GET'])(  # noqa
    admin.route("/roles/<string:role_type>", methods=['GET'])(
    admin.route("/roles/<string:role_type>/<int:page>", methods=['GET'])(
    admin.route("/roles/<string:role_type>/<int:page>/<int(min=1, max=100):limit>", methods=['GET'])(  # noqa
        require_appkey(
        auth_basic.login_required(
        permission_super_admin.require(http_exception=403)(
        check_password_expiration(
            get_roles))))))))))  # noqa

    # POST /roles
    admin.route('/roles', methods=['POST'])(
        require_appkey(
        auth_basic.login_required(
        permission_super_admin.require(http_exception=403)(
        check_password_expiration(
            post_roles)))))  # noqa

    # GET /role/{id}
    admin.route('/role/<int:role_id>', methods=['GET'])(
    admin.route('/role/<string:name>', methods=['GET'])(  # noqa
        require_appkey(
        auth_basic.login_required(
        permission_super_admin.require(http_exception=403)(
        check_password_expiration(
            get_role))))))  # noqa

    # PUT /role/{id}
    admin.route('/role/<int:role_id>', methods=['PUT'])(
        require_appkey(
        auth_basic.login_required(
        permission_super_admin.require(http_exception=403)(
        check_password_expiration(
            put_role)))))  # noqa

    # DELETE /role/{id}
    admin.route('/role/<int:role_id>', methods=['DELETE'])(
        require_appkey(
        auth_basic.login_required(
        permission_super_admin.require(http_exception=403)(
        check_password_expiration(
            delete_role)))))  # noqa

    app.register_blueprint(admin)
Ejemplo n.º 6
0
def public_routes(app):
    """Register public terms of services routes with the application.

    :param app: Flask application
    :type app: Flask
    """
    public = Blueprint('public_terms_of_services', __name__)

    # GET /terms_of_service/current
    public.route("/terms_of_service/current", methods=['GET'])(
        require_appkey(public_get_terms_of_service))

    app.register_blueprint(public)
Ejemplo n.º 7
0
def test_require_appkey_missing_key(app, mocker):

    # some function to wrap
    def test_func():
        return True

    # wrap the function
    wrapped_func = require_appkey(test_func)

    try:
        wrapped_func()
        assert False
    except Unauthorized:
        assert True
Ejemplo n.º 8
0
def admin_routes(app):
    """Register admin password resets routes with the application.

    :param app: Flask application
    :type app: Flask
    """
    admin = Blueprint('admin_password_resets', __name__)

    # GET /users
    admin.route("/password_resets", methods=['GET'])(
        admin.route("/password_resets/<int:page>", methods=['GET'])(
            admin.route(
                "/password_resets/<int:page>/<int(min=1, max=100):limit>",
                methods=['GET'])(  # noqa
                    require_appkey(
                        auth_basic.login_required(
                            permission_super_admin.require(http_exception=403)(
                                check_password_expiration(
                                    get_password_resets)))))))  # noqa

    app.register_blueprint(admin)
Ejemplo n.º 9
0
def test_require_appkey_pass(app, mocker):

    # mock request
    request_mock = mocker.patch('modules.app_keys.middleware.request')
    request_mock.args = {'app_key': '123'}

    # mock app key db query
    query_mock = mocker.patch('flask_sqlalchemy._QueryProperty.__get__')
    query_mock.return_value \
        .filter.return_value \
        .one.return_value = AppKey()

    # some function to wrap
    def test_func():
        return True

    # wrap the function
    wrapped_func = require_appkey(test_func)

    try:
        assert wrapped_func() is True
    except Unauthorized:
        assert False
Ejemplo n.º 10
0
def test_require_appkey_bad_key(app, mocker):

    # mock request
    request_mock = mocker.patch('modules.app_keys.middleware.request')
    request_mock.args = {'app_key': 'BAD_KEY'}

    # mock app key db query
    query_mock = mocker.patch('flask_sqlalchemy._QueryProperty.__get__')
    query_mock.return_value \
        .filter.return_value \
        .one.side_effect = NoResultFound()

    # some function to wrap
    def test_func():
        return True

    # wrap the function
    wrapped_func = require_appkey(test_func)

    try:
        wrapped_func()
        assert False
    except Unauthorized:
        assert True
Ejemplo n.º 11
0
def admin_routes(app):
    """Register admin administrator routes with the application.

    :param app: Flask application
    :type app: Flask
    """
    # pylint: disable=unused-variable

    @auth_basic.verify_password
    def verify_password(username_or_token, password):
        return Authentication.verify_password(username_or_token, password)

    @identity_loaded.connect_via(app)
    def on_identity_loaded(sender, identity):
        return Authentication.on_identity_loaded(sender, identity)

    admin = Blueprint('admin_administrators', __name__)

    # GET /token
    admin.route('/token', methods=['GET'])(require_appkey(
        auth_basic.login_required(
            permission_super_admin.require(
                http_exception=403)(get_auth_token))))  # noqa

    # GET /token/check
    admin.route('/token/check', methods=['GET'])(require_appkey(
        auth_basic.login_required(
            permission_super_admin.require(
                http_exception=403)(get_auth_token_check))))  # noqa

    # GET /administrators
    admin.route("/administrators", methods=['GET'])(
        admin.route("/administrators/<int:page>", methods=['GET'])(
            admin.route(
                "/administrators/<int:page>/<int(min=1, max=100):limit>",
                methods=['GET'])(  # noqa
                    require_appkey(
                        auth_basic.login_required(
                            permission_super_admin.require(http_exception=403)(
                                check_password_expiration(
                                    get_administrators)))))))  # noqa

    # POST /administrators
    admin.route('/administrators', methods=['POST'])(require_appkey(
        auth_basic.login_required(
            permission_super_admin.require(http_exception=403)(
                check_password_expiration(post_administrator)))))  # noqa

    # GET /administrator/{id}
    admin.route('/administrator/<int:administrator_id>', methods=['GET'])(
        require_appkey(
            auth_basic.login_required(
                permission_super_admin.require(http_exception=403)(
                    check_password_expiration(get_administrator)))))  # noqa

    # PUT /administrator/{id}
    admin.route('/administrator/<int:administrator_id>', methods=['PUT'])(
        require_appkey(
            auth_basic.login_required(
                permission_super_admin.require(http_exception=403)(
                    check_password_expiration(put_administrator)))))  # noqa

    # DELETE /administrator/{id}
    admin.route('/administrator/<int:administrator_id>', methods=['DELETE'])(
        require_appkey(
            auth_basic.login_required(
                permission_super_admin.require(http_exception=403)(
                    check_password_expiration(delete_administrator)))))  # noqa

    app.register_blueprint(admin)
Ejemplo n.º 12
0
def public_routes(app):
    """Register public user account routes with the application.

    :param app: Flask application
    :type app: Flask
    """
    # pylint: disable=unused-variable

    public = Blueprint('public_user_account', __name__)

    # POST /user_account/step1
    public.route('/user_account/step1', methods=['POST'])(
        require_appkey(
            post_user_account_step1))

    # POST /user_account/step2
    public.route('/user_account/step2', methods=['POST'])(
        require_appkey(
        auth_basic.login_required(
        permission_user.require(http_exception=403)(
        check_password_expiration(
            post_user_account_step2)))))  # noqa

    # GET /user_account
    public.route('/user_account', methods=['GET'])(
        require_appkey(
        auth_basic.login_required(
        permission_user.require(http_exception=403)(
        check_password_expiration(
            get_user_account)))))  # noqa

    # PUT /user_account
    public.route('/user_account', methods=['PUT'])(
        require_appkey(
        auth_basic.login_required(
        permission_user.require(http_exception=403)(
        check_password_expiration(
            put_user_account)))))  # noqa

    # DELETE /user_account
    public.route('/user_account', methods=['DELETE'])(
        require_appkey(
        auth_basic.login_required(
        permission_user.require(http_exception=403)(
        check_password_expiration(
            delete_user_account)))))  # noqa

    # PUT /user_account/password
    public.route('/user_account/password', methods=['PUT'])(
        require_appkey(
        auth_basic.login_required(
        permission_user.require(http_exception=403)(
            public_put_password))))  # noqa

    # POST /password/request-reset-code
    public.route('/password/request-reset-code', methods=['POST'])(
        require_appkey(
            post_password_request_reset_code))

    # PUT /password/reset
    public.route('/password/reset', methods=['PUT'])(
        require_appkey(
            put_password_reset))

    app.register_blueprint(public)