Skip to main content

Flask Casbin Integration

Project description

Flask-Casbin

Build Status

Flask-Casbin is an extension that provide Casbin ACL functionality to your Flask project

Installation

Install Flask-Casbin with pip:

pip install Flask-Casbin

Install Flask-Casbin with poetry:

poetry add Flask-Casbin

Example

This is an example Flask application:

from flask import Flask
from flask_casbin import Casbin

app = Flask(__name__)

# config
app.config["CASBIN_MODEL_CONF"] = "./model.conf"
app.config["CASBIN_POLICY_CSV"] = "./policy.csv"

# create acl
acl = Casbin(app)

@app.route('/data/<id_:int>')
def get_data(id_):
    # curent_user ist global authenticated user
    acl.enforce("user:%s" % current_user.name, "data:%d" % id_, "read") or abort(401)

    # Get data
    data = db.get_data(id_)
    return { data_id: data.id, data: data.payload }

Todo

  • Decorators for ACL check
  • Policy adapters
  • Dynamic Policy Adapter (Flask-SQLAlchemy)
  • More tests

Resources

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for flask-casbin, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size Flask_Casbin-0.1.0-py3-none-any.whl (6.5 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size Flask-Casbin-0.1.0.tar.gz (6.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page