This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Login with OAuth2/ OpenId by integrating Authomatic in Plone

pas.plugins.authomatic

Features

Provides OAuth2 and OpenID login capability for Plone:

It integrates the awesome Authomatic package in Plone

Authomatic is a framework agnostic library for Python web applications with a minimalistic but powerful interface which simplifies authentication of users by third party providers like Facebook or Twitter through standards like OAuth and OpenID.

by Author Peter Hudec on Authomatic website

It has out of the box support for:

OAuth 1.0a providers
Bitbucket, Flickr, Meetup, Plurk, Twitter, Tumblr, UbuntuOne, Vimeo, Xero, Xing and Yahoo.
OAuth 2.0 providers
Amazon, Behance, Bitly, Cosm, DeviantART, Eventbrite, Facebook, Foursquare, GitHub, Google, LinkedIn, PayPal, Reddit, Viadeo, VK, WindowsLive, Yammer and Yandex.
OpenID
python-openid and Google App Engine based OpenID.

Documentation

  • This package will create a view called authomatic-handler where you can login with different providers

  • The view can be used as well to add an identity from a provider to an existing account

  • The provider is choosen in the URL so if you call /authomatic-handler/PROVIDER you will use PROVIDER to login

  • You can set the JSON configuration of the plugin in the Controlpanel @@authomatic-controlpanel (linked under users)

  • Example JSON configuration (first level key is the PROVIDER:

    {
        "github": {
            "display": {
                "title": "Github",
                "cssclasses": {
                    "button": "plone-btn plone-btn-default",
                    "icon": "glypicon glyphicon-github"
                },
                "as_form": false
            },
            "propertymap": {
                "email": "email",
                "link": "home_page",
                "location": "location",
                "name": "fullname"
            },
            "class_": "authomatic.providers.oauth2.GitHub",
            "consumer_key": "5c4901d141e736f114a7",
            "consumer_secret": "d4692ca3c0ab6cc1f8b28d3ccb1ea15b61e7ef5c",
            "access_headers": {
                "User-Agent": "Plone Authomatic Plugin"
            }
        },
    }
    

Installation

Install pas.plugins.authomatic by adding it to your buildout:

[buildout]

 ...

 eggs =
     pas.plugins.authomatic

and then running “bin/buildout”.

Start Plone and activate the plugin in the addons control-panel.

Go to the Authomatic controlpanel (security section) and configure the plugin.

Configuration parameters for the different authorization are provided as JSON text in there. JSON is used because of flexibility. Details at Authomatics provider section.

There are some differences in configuration:

  • the value of "class_" has to be a string, which is then resolved as a dotted path.
  • each provider can get an optional entry display with sub-enties such as:
    • title which is used in the templates instead of the section name.
    • iconclasses which is applied in the templates to an span.
    • buttonclasses which is applied in the templates to the button.
    • as_form (true/false) which renders a form for OpenId providers.
  • each provider can get an optional entry propertymap. It is a mapping from authomatic/provider user properties to plone user properties, like "fullname": "name",. Look at each providers documentation which properties are available.

Source Code and Contributions

If you want to help with the development (improvement, update, bug-fixing, …) of pas.plugins.authomatic this is a great idea!

You can clone it or get access to the github-collective and work directly on the project. Please do larger changes on a branch and submit a Pull Request.

Maintainer of pas.plugins.authomatic is Jens Klein. We appreciate any contribution and if a release is needed to be done on pypi, please just contact one of us.

Development

There must be an python binary available in system path pointing to Python 2.7. Also you need to have all installed to develop with Plone (see http://docs.plone.org/) then:

  • Plone 4: $ bootstrap-4.3.x.sh
  • Plone 5: $ bootstrap-5.0.x.sh

License

The project is licensed under the GPLv2.

Contributors

Changelog

1.0a7 (2016-02-15)

  • Workaround for None users. [sneridagh]

1.0a6 (2016-01-11)

  • Fix #21: When you logout and then login again, a new user is created. [jensens]

1.0a5 (2015-12-04)

  • Fix: #18 “Provider Login” option for “Generator for Plone User ID” seems broken [jensens]
  • Fix: Title indicates if an identity is added [jensens]
  • Fix: Correct usage of plone.protect [jensens]

1.0a4 (2015-11-20)

  • Added german translation [jensens]
  • Restored Plone 4 compatibility [keul]
  • Added italian translation [keul]
  • Proper uninstall [keul]

1.0a3 (2015-11-15)

  • Refactor authomatic-handler to enable adding identities. [jensens]
  • Fix: use secret from settings as secret for Authomatic. [jensens]
  • Renamed view authomatic-login to authomatic-handler, because this view will be used to add an identity too (url must be registered on provider side sometimes and we want to do this only once). [jensens]

1.0a2 (2015-11-14)

  • Minimal validation of JSON. [jensens]
  • Make the whole remember procedure a safeWrite if called from login view. We can not pass a authenticator token here, because of redirects and expected return urls . [jensens]
  • Allow selection of user id generator strategy. [jensens]
  • Allow multiple services for one user. This changes a lot behind the scenes. [jensens]
  • Use authomatic.core.User attributes instead of raw provider data. closes #9 [ericof]

1.0a1 (2015-10-28)

  • Initial release.
Release History

Release History

1.0a7

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0a6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0a5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0a4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0a3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0a2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0a1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pas.plugins.authomatic-1.0a7.tar.gz (52.2 kB) Copy SHA256 Checksum SHA256 Source Feb 15, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting