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)
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)
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)
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)
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)
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)
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
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)
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
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
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)
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)