Skip to main content

Django integration with WordPress authentication and roles / capabilities system.

Project description

Introduction

Allows for access in Django to a WordPress installation for checking for things like login status and roles / capabilities.

Requirements

Python Dependencies:

WordPress Dependencies:

Installation

Add your WordPress’s auth keys and salts (found in wp-config.php) to your settings.py.

WORDPRESS_LOGGED_IN_KEY = "rs&^D%jPdu=vk|VVDsdfsdgsdgsdg9sd87f98s7h[Xm$3gT/@1xdasd"
WORDPRESS_LOGGED_IN_SALT = "3]x^n{d8=su23902iu09jdc09asjd09asjd09jasdV-Lv-OydAQ%?~"

Add your WordPress database to DATABASES in settings.py.

DATABASES = {
    'default': {
        ... # default django DB
    },
    'wordpress': {  # must be named 'wordpress'
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'wordpress',
        'USER': '...',
        'PASSWORD': '...',
        'HOST': '...',
        'PORT': 3306,
    }
}

Add the middleware to MIDDLEWARE_CLASSES in settings.py. Make sure it’s placed somewhere after the session middleware.

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    # ...
    'wordpress_auth.middleware.WordPressAuthMiddleware',
)

Finally, add wordpress_auth to INSTALLED_APPS.

INSTALLED_APPS = (
    # ...
    'wordpress_auth',
)

Usage

To restrict a view to a certain role, simply wrap the view in the wordpress_requires_role decorator.

from wordpress_auth.decorators import wordpress_requires_role

@wordpress_requires_role('my_role')
def my_view():
    pass

You can restrict a view to a capability as well.

from wordpress_auth.decorators import wordpress_requires_capability

@wordpress_requires_capability('my_capability')
def my_view():
    pass

Finally, the middleware provides access to the WordPress user via request.wordpress_user.

See models.py for full reference. Some of the redundant naming conventions in the WordPress database have been made simpler as well.

Project details


Download files

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

Source Distribution

django-wordpress-auth-0.1.31.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

django_wordpress_auth-0.1.31-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-wordpress-auth-0.1.31.tar.gz.

File metadata

File hashes

Hashes for django-wordpress-auth-0.1.31.tar.gz
Algorithm Hash digest
SHA256 c3db71ccb2c7191387f12ca75ebb7e55f504f31df0fd413d7ce2b65d4d6b20fa
MD5 081b1df98001e5c8384b61858cf1e2fc
BLAKE2b-256 02be59d68de15c6dab2f13b57118cd068a02ffad65bc80c016d5471303091b0d

See more details on using hashes here.

File details

Details for the file django_wordpress_auth-0.1.31-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_wordpress_auth-0.1.31-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e8c73cabf3e993d5597f96d799cd9a39e32ebc6ffca3c6bc0949b166b12b969c
MD5 6a6bb4387383672dada2fb651e1ea2ee
BLAKE2b-256 3fcf8f7677c8c4babef17454fcfa746a3aa6c00a55a0d7d2988b660ae3299a7e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page