Skip to main content

Handles authorization for Django by using puppetdb users

Project description

#################
django-pypuppetdb
#################

.. image:: https://api.travis-ci.org/nedap/django-pypuppetdb.png
:target: https://travis-ci.org/nedap/django-pypuppetdb

.. image:: https://coveralls.io/repos/nedap/django-pypuppetdb/badge.png
:target: https://coveralls.io/r/nedap/django-pypuppetdb

.. image:: https://pypip.in/d/django_pypuppetdb/badge.png
:target: https://pypi.python.org/pypi/django_pypuppetdb

.. image:: https://pypip.in/v/django_pypuppetdb/badge.png
:target: https://crate.io/packages/django-pypuppetdb

django-pypuppetdb is a library that handles authentication
by using the PuppetDB's REST API to get Users that are registrated
in PuppetDB. It is implemented using the `requests`_ library.

.. _requests: http://docs.python-requests.org/en/latest/

To use this library you will need:
* Python 2.7+
* Python 3.3+
* Django 1.6
* pypuppetdb

Currently I'm working on making it 1.7 compatible

Installation
============

You can install this package from source or from PyPi.

.. code-block:: bash

$ pip install django-pypuppetdb

.. code-block:: bash

$ git clone https://github.com/nedap/django-pypuppetdb
$ python setup.py install

Django
------

To let django connect to puppetdb in order to get your user
add the following line to you settings.

* add "django_pypuppetdb" to INSTALLED_APPS.
* add "django_pypuppetdb.django_authentication.PuppetDBAuthentication" to AUTHENTICATION_BACKENDS

* add the followin settings

.. code-block:: python

PUPPETDB_HOST = 'localhost',
PUPPETDB_PORT = 8080,
PUPPETDB_NODE = 'node',
PUPPETDB_KEY = None,
PUPPETDB_CERT = None,
PUPPETDB_SSL_VERIFY = False
PUPPETDB_ADMIN_GROUP = 'admins'

Tastypie
--------

If you are using tastypie as API framework and want to use pypuppetdb to
validate the user you can add the following line to your resource file

.. code-block:: python

from django_pypuppetdb.tastypie_authentication import PuppetDBAuthentication

in your class Meta add:
authentication = PuppetDBAuthentication()

if you would like to use multiple authentications you can use

.. code-block:: python

authentication = MultiAuthentication(ApiKeyAuthentication(), PuppetDBAuthentication())

Getting Help
============
This project is still very new so most likely there will be issues
you'll run into.

For bug reports you can file an `issue`_. If you need help with something
feel free to hit up `@eagllus`_ by e-mail.

.. _issue: https://github.com/nedap/pypuppetdb/issues
.. _@eagllus: https://github.com/eagllus
#########
Changelog
#########

0.0.1
=====
Initial release. Implements most of authorization for django.

0.0.2
=====
Separating Django and Tastypie dependency.

0.0.3
=====
Renaming Django authenticaton and updated all tests
Renaming Tastyie authentication and updated all tests

0.1.0
=====
Django and Tastypie fully tested

0.1.1
=====
Adding check for puppet group that will check if the user
is in the group defined in PUPPETDB_ADMIN_GROUP. This will give the
user admin rights allowing the user to login django-admin.

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_pypuppetdb-0.1.3.tar.gz (8.1 kB view hashes)

Uploaded Source

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