{ "info": { "author": "Rapha\u00ebl Barrois", "author_email": "raphael.barrois+djauthgroupex@polytechnique.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "django-authgroupex\n==================\n\nThis library provides a Django authentication backend based on Polytechnique.org's auth-groupe-x SSO protocol.\n\n.. image:: https://travis-ci.org/Polytechnique-org/django-authgroupex.svg?branch=master\n :target: https://travis-ci.org/Polytechnique-org/django-authgroupex\n\nSetup\n=====\n\nThe django-authgroupex package requires only a minimal pair of settings to work:\n\n.. code-block:: python\n\n # Enable AuthGroupeX authentication backend\n AUTHENTICATION_BACKENDS = (\n 'django_authgroupex.auth.AuthGroupeXBackend',\n 'django.contrib.auth.backends.ModelBackend', # Optional\n )\n\n # Read secret key from file\n AUTHGROUPEX_KEY = open('authgroupex.key', 'r').readline()\n\n\nIt should also be included in your projects ``urls.py`` file:\n\n.. code-block:: python\n\n urlpatterns = patterns('',\n # Usual suspects here\n url(r'^xorgauth/', include('django_authgroupex.urls', namespace='authgroupex')),\n )\n\n.. note:: The app **must** be installed under the ``authgroupex`` namespace.\n\n\n\nIf you're using the ``django.contrib.admin`` app, you may also override its login form:\n\n.. code-block:: python\n\n from django.contrib import admin\n admin.site.login_template = 'authgroupex/admin_login.html'\n\n.. note:: This setting requires ``django_authgroupex`` to be part of your ``INSTALLED_APPS``.\n\n\nConfiguring django-authgroupex\n==============================\n\ndjango-authgroupex provides the following settings:\n\nConnection\n----------\n\n* ``AUTHGROUPEX_KEY``: **Required**, the secret key used to connect to an AuthGroupeX-compatible server.\n\n* ``AUTHGROUPEX_ENDPOINT``: The remote endpoint (an AuthGroupeX-compatible server).\n Default: `https://www.polytechnique.org/auth-groupe-x/utf8`\n* ``AUTHGROUPEX_FIELDS``: The list of profile fields to require upon connection; order matters.\n Default: ``('username', 'firstname', 'lastname', 'email')``\n\n\nModels\n------\n\n* ``AUTHGROUPEX_USER_MODEL``: Model storing users.\n Default: ``auth.User``\n* ``AUTHGROUPEX_GROUP_MODEL``: Model storing groups.\n Default: ``auth.Group``\n\n.. note:: The ``AuthGroupeXBackend`` authentication backend expects a\n :class:`~django.contrib.auth.AbstractUser` subclass in that model.\n This behaviour can be tuned by writing your own subclass, inheriting from\n :class:`~django_authgroupex.auth.AuthGroupeXMixin`.\n\nPermissions\n-----------\n\ndjango_authgroupex uses the 4 permissions from the AuthGroupeX SSO:\n\n* :data:`~django_authgroupex.auth.PERM_USER`, for simple users\n* :data:`~django_authgroupex.auth.PERM_GROUP_MEMBER`, for member of the related ``AUTHGROUPEX_GROUP``\n* :data:`~django_authgroupex.auth.PERM_GROUP_ADMIN`, for admins of the related ``AUTHGROUPEX_GROUP``\n* :data:`~django_authgroupex.auth.PERM_ADMIN`, for admins of the remote site\n\n\nThese (remote) permissions can be mapped to Django access rights through the following settings:\n\n* ``AUTHGROUPEX_SUPERADMIN_PERMS``: A list of AuthGroupeX permissions that enable the\n ``is_admin`` flag on this server.\n Default: ``()``\n* ``AUTHGROUPEX_STAFF_PERMS``: A list of AuthGroupeX permissions that enable the\n ``is_staff`` flag on this server.\n* ``AUTHGROUPEX_DISABLE_DEADS``: Whether a user connecting from a \"dead\" account should\n be switched to ``is_active=False``\n Default: ``False``\n* ``AUTHGROUPEX_GROUP``: Name of the AuthGroupeX group to use for a single-group website.\n Default: ``''``\n* ``AUTHGROUPEX_MAP_GROUPS``: Dict mapping an AuthGroupeX permission to a list of local group names.\n Default: ``{}``\n\n\nURLs\n----\n\nThe usual setup of django-authgroupex is to use\n:meth:`~django_authgroupex.views.AuthGroupeXUniqueView.login_view` for authentication,\neither as \"login\" page (thus enabling transparent authentication) or through a\n\"connect through X.org\" link from the usual login page.\n\nThis behaviour can be tuned through the following settings:\n\n* ``AUTHGROUPEX_RETURN_URL``: Name of the (local) return url for successful logins.\n Default: ``settings.LOGIN_URL``\n* ``AUTHGROUPEX_LOGIN_REDIRECT_URL``: Name of the URL to redirect the user to after a successful login without a ``?next=`` parameter\n Default: ``settings.LOGIN_REDIRECT_URL``\n\nIf :meth:`~django_authgroupex.views.AuthGroupeXUniqueView.login_view` is used,\n``AUTHGROUPEX_RETURN_URL`` **must** point to that view.\n\nIf :meth:`~django_authgroupex.views.AuthGroupeXBaseView.login_begin_view` and\n:meth:`~django_authgroupex.views.AuthGroupeXBaseView.login_return_view` are used\n``AUTHGROUPEX_RETURN_URL`` **must** point to ``login_return_view``.\n\n\nTesting\n=======\n\nFor testing purposes, it is advised to not use a production private key.\n\ndjango_authgroupex has a special, \"fake\" mode for such cases.\nThat fake mode adds a couple of URLs handling a local endpoint where the end user can\nchoose custom values for requested fields.\n\nInstallation requires a couple of extra settings::\n\n # settings.py\n AUTHGROUPEX_FAKE = True\n AUTHGROUPEX_ENDPOINT = 'authgroupex:fake_endpoint'\n INSTALLED_APPS = (\n '...',\n 'django_authgroupex',\n )\n\nThe ``AUTHGROUPEX_FAKE`` setting will enable two views for handling fake requests:\n\n- One validates the input (which can also be used to validate external clients)\n- The second provides a dynamic form based on ``AUTHGROUPEX_FIELDS``, enabling users to\n select their preferred response.\n\nThe ``AUTHGROUPEX_ENDPOINT`` setting should include the namespace at which ``django_authgroupex.urls`` was inserted.\n", "description_content_type": null, "docs_url": null, "download_url": "http://pypi.python.org/pypi/django-authgroupex/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/rbarrois/django-authgroupex", "keywords": "sso,authentication,django,authgroupex", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django_authgroupex", "package_url": "https://pypi.org/project/django_authgroupex/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django_authgroupex/", "project_urls": { "Download": "http://pypi.python.org/pypi/django-authgroupex/", "Homepage": "http://github.com/rbarrois/django-authgroupex" }, "release_url": "https://pypi.org/project/django_authgroupex/0.4.1/", "requires_dist": null, "requires_python": null, "summary": "An authentication backend for Django based on Polytechnique.org's auth-groupe-x SSO protocol.", "version": "0.4.1" }, "last_serial": 1208646, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b946bec9d9af95f5b3c79d2db949bceb", "sha256": "50ba79e5ef5aca482b93b853e9fcaa51445f1fac55f2334fa5c1752f18d00caa" }, "downloads": -1, "filename": "django_authgroupex-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b946bec9d9af95f5b3c79d2db949bceb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6800, "upload_time": "2013-02-02T01:01:30", "url": "https://files.pythonhosted.org/packages/c9/35/33cbe66493b8e855c5ffd32311c457a18c7e2686f2ec30d1e5e1a0465297/django_authgroupex-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "dde322c3584d4a7380d4d59d23ccb731", "sha256": "3e9625b4c0d074d0da5f9379c883ba89fdd8549686e3da763bc7fb3620311069" }, "downloads": -1, "filename": "django_authgroupex-0.2.0.tar.gz", "has_sig": false, "md5_digest": "dde322c3584d4a7380d4d59d23ccb731", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13252, "upload_time": "2013-02-09T00:16:11", "url": "https://files.pythonhosted.org/packages/63/90/b19c75deecce16dee82fb3c31906378f9f167a979c15f456b4a94545510e/django_authgroupex-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "04398f3db6cbcb9284063de7bc3bcede", "sha256": "6894f49453ccbb1b8fd213aa3cf0f5251b9125a0adfdccc8989ca3f25843ee67" }, "downloads": -1, "filename": "django_authgroupex-0.2.1.tar.gz", "has_sig": false, "md5_digest": "04398f3db6cbcb9284063de7bc3bcede", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13148, "upload_time": "2013-03-28T23:42:10", "url": "https://files.pythonhosted.org/packages/5d/4d/3cc4e0278e83cfe691735b38b53290f24d487ffd4e7fba53d4ffe4c3838f/django_authgroupex-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "c4bdb96da9ea7c5d9027ca0d5349a874", "sha256": "dc6e46438ef82b7ceae2ac333c2464bb202086866b71d3e2d87e6b8851f97aa4" }, "downloads": -1, "filename": "django_authgroupex-0.2.2.tar.gz", "has_sig": false, "md5_digest": "c4bdb96da9ea7c5d9027ca0d5349a874", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13319, "upload_time": "2013-08-14T15:00:47", "url": "https://files.pythonhosted.org/packages/6f/dd/a7deac5094d948d3dbc8ecc1d638ff919943fd68ff1739021ed258ff24da/django_authgroupex-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "cc68aa85ef3b6730cef491f250729c40", "sha256": "366c4b78a4b113487479a9f4a2ae26cd2b11515dca0f8f1464969182ab257dcd" }, "downloads": -1, "filename": "django_authgroupex-0.3.0.tar.gz", "has_sig": false, "md5_digest": "cc68aa85ef3b6730cef491f250729c40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14119, "upload_time": "2013-11-21T23:21:38", "url": "https://files.pythonhosted.org/packages/65/0d/38d3e8df85b12a0581448f801c2fe3c5938ac469d8c3f3a8a633fccff1f6/django_authgroupex-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d312af598d97d1250e49241bfcfeb354", "sha256": "6c15ca8e9728c0d64ce7ea4a1a620dfe48c73bf5480e7b7387e4069187315461" }, "downloads": -1, "filename": "django_authgroupex-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d312af598d97d1250e49241bfcfeb354", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14178, "upload_time": "2013-11-25T11:04:12", "url": "https://files.pythonhosted.org/packages/8f/09/30c1622498ff6ebdeb219ab7631544c53f689b272243625d4f0ba02c53c3/django_authgroupex-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "84eaef08bd85549915bcf8ce411aa80e", "sha256": "0494e5267fcd126fd1d0ac09b408d323e592cec7caf90e9ca4e6984150b6b3d5" }, "downloads": -1, "filename": "django_authgroupex-0.3.2.tar.gz", "has_sig": false, "md5_digest": "84eaef08bd85549915bcf8ce411aa80e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14225, "upload_time": "2013-11-25T14:44:08", "url": "https://files.pythonhosted.org/packages/a2/77/9b9d578fd857bcce8f16e0ce6323de23f0a2c383479077b1b039f9df9454/django_authgroupex-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "eb58706faebfafa60aa7d9ec1837a637", "sha256": "9b57365f90d036bd7e7fb7638782658d822631ba45704bcedfe4902361ab432b" }, "downloads": -1, "filename": "django_authgroupex-0.4.0.tar.gz", "has_sig": false, "md5_digest": "eb58706faebfafa60aa7d9ec1837a637", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14832, "upload_time": "2014-06-14T12:11:28", "url": "https://files.pythonhosted.org/packages/5a/09/8dea5ac8c98506618ca907f97b48bd4fc4d782cb548cd6b5d4c8a5a1facf/django_authgroupex-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "292145a0930a35ca1b5c879c0bf5d1f9", "sha256": "8aea36ef8f77e7787b1ee228178df01f6d4808aaf58e1b8533dcd97086258fec" }, "downloads": -1, "filename": "django_authgroupex-0.4.1.tar.gz", "has_sig": false, "md5_digest": "292145a0930a35ca1b5c879c0bf5d1f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14502, "upload_time": "2014-08-31T23:30:14", "url": "https://files.pythonhosted.org/packages/a1/e2/fb0ff2520a0498d5385cacc360be6fb4ab90dbe7200f36235f41915d575d/django_authgroupex-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "292145a0930a35ca1b5c879c0bf5d1f9", "sha256": "8aea36ef8f77e7787b1ee228178df01f6d4808aaf58e1b8533dcd97086258fec" }, "downloads": -1, "filename": "django_authgroupex-0.4.1.tar.gz", "has_sig": false, "md5_digest": "292145a0930a35ca1b5c879c0bf5d1f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14502, "upload_time": "2014-08-31T23:30:14", "url": "https://files.pythonhosted.org/packages/a1/e2/fb0ff2520a0498d5385cacc360be6fb4ab90dbe7200f36235f41915d575d/django_authgroupex-0.4.1.tar.gz" } ] }