{ "info": { "author": "Tim White", "author_email": "tim@cyface.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP" ], "description": "=====================\nDjango Social Profile\n=====================\n\n.. image:: https://badge.fury.io/py/django-socialprofile.svg\n :target: http://badge.fury.io/py/django-socialprofile\n :alt: PyPi Package Version\n\n.. image:: https://travis-ci.org/cyface/django-socialprofile.svg?branch=master\n :target: https://travis-ci.org/cyface/django-socialprofile\n :alt: Travis Build Status\n\n.. image:: https://coveralls.io/repos/cyface/django-socialprofile/badge.png?branch=master\n :target: https://coveralls.io/r/cyface/django-socialprofile?branch=master\n :alt: Coveralls Code Coverage\n\n.. image:: https://scrutinizer-ci.com/g/cyface/django-socialprofile/badges/quality-score.png?b=master\n :target: https://scrutinizer-ci.com/g/cyface/django-socialprofile/?branch=master)\n :alt: Scrutinizer Code Quality\n\n.. image:: https://readthedocs.org/projects/django-socialprofile/badge/?version=latest\n :target: http://django-socialprofile.readthedocs.org/en/latest/?badge=latest\n\t:alt: Documentation Status\n\n\nDjango Social Profile gives you an out-of-the-box way to let users create an account in your application using\nGoogle, Twitter, or Facebook authentication.\n\nUsers can edit their profile, view other users' profiles, and add multiple types of auth to the same profile.\n\nDjango Social Profile relies on omab's excellent `python-socialauth `_ to do\nthe actual authentication with the backend providers. If you are just looking for the authentication piece, as opposed\nto the UI for customers to use, that module will be all you need. If you are willing to spend a bit of time with the UI,\nyou can integrate any of the backends that python-socialauth provides (which is extensive).\n\n.. contents:: Table of Contents\n\nFeatures\n========\n\nThis module is meant to be as quick to integrate as possible, and thus extensive customization will likely benefit from\na fork. That said, a number of options are available.\n\nThe idea is to let you have a working system for letting users create profiles with social auth, edit them, delete them,\nand merge them, out of the box.\n\nAll the underlying bits to make this work come with python-socialauth, this project just pulls them together with a UI.\n\n\nDependencies\n============\n\nDependencies that **must** be meet to use the application:\n\n- `Django 1.9: `_\n\n- `python-social-auth: `_\n\n- `python-openid `_\n\n- `oauth2 `_\n\n- You will need API Keys from Google, Facebook, and Twitter.\n\nInstallation\n============\n\nFrom `pypi `_::\n\n\t$ pip install django-socialprofile\n\nor::\n\n\t$ easy_install django-socialprofile\n\nor clone from `github `_::\n\n\t$ git clone git://github.com/cyface/django-socialprofile.git\n\nand add django-socialprofile to the ``PYTHONPATH``::\n\n\t$ export PYTHONPATH=$PYTHONPATH:$(pwd)/django-socialprofile/\n\nor::\n\n\t$ cd django-socialprofile\n\t$ sudo python setup.py install\n\n\nDemo App\n========\nThe socialprofile_demo app is included to quickly let you see how to get a working installation going.\n\nThe demo is built as a mobile app using `jQueryMobile `_ loaded from the jQuery CDN.\n\nTake a look at the ``requirements.txt`` file in the ``socialprofile_demo`` directory for a quick way to use pip to install\nall the needed dependencies::\n\n\t$ pip install -r requirements.txt\n\nThe ``settings.py``, and ``settings_local_template.py`` files have a working configuration you can crib from.\nYou'll need to copy ``settings_local_template.py`` as ``settings_local.py`` and fill in your API keys.\n\nThe templates in the ``socialprofile/templates`` and ``socialprofile_demo/templates`` directories\ngive you a good idea of the kinds of things you will need to do if you want to provide a custom interface.\n\nConfiguration\n=============\n\nConfiguration is minimal for socialprofile itself, more config is needed for ``python-socialauth``. A quick guide to a basic setup\nis below, take a look at the demo app for more details.\n\nAdd INSTALLED_APPS\n------------------\n\nAdd social_auth and socialprofile to installed applications::\n\n\tINSTALLED_APPS = (\n ...\n 'social.apps.django_app.default',\n 'socialprofile',\n )\n\nAdd urls to urls.py\n-------------------\n\nIn your urls.py, you need to pull in the socialprofile urls::\n\n\t# Social Profiles\n\turl(r'^socialprofile/', include('socialprofile.urls')),\n\nThe ``python-socialauth`` urls get pulled in by socialprofile as ``/socialprofile/socialauth/``.\n\nConfigure python-socialauth\n---------------------------\n\nAll of the configuration for ``python-socialauth`` applies to this module, although the supplied templates only cover\nGoogle, Facebook, and Twitter. ``python-socialauth`` can handle a huge number of backends, you can customize as needed.\n\n- Setup your backends::\n\n\t# Python Socialauth Settings\n\tAUTHENTICATION_BACKENDS = (\n 'django.contrib.auth.backends.ModelBackend', # Leave Enabled for Admin Access\n 'social.backends.twitter.TwitterOAuth',\n 'social.backends.facebook.Facebook2OAuth2',\n 'social.backends.google.GoogleOAuth2',\n )\n\n- Set up what page to go to post-authentication::\n\n\tSOCIAL_AUTH_LOGIN_REDIRECT_URL = '/secure/'\n\tSOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/secure/'\n\tSOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/secure/'\n\n- Set up the redirects for forcing auth on the way to other pages::\n\n\t# Core Authentication Settings\n\tLOGIN_URL = '/socialprofile/select/'\n\tLOGIN_REDIRECT_URL = '/secure/'\n\tLOGIN_ERROR_URL = '/socialprofile/select/'\n\nRegister for your API Keys\n--------------------------\n\nGoogle\n^^^^^^\n\nhttps://code.google.com/apis/console/\n\nSet the return URL to http://localhost:8000/socialprofile/socialauth/complete/google-oauth2/ for development when you\nset up the API key.\n\nTwitter\n^^^^^^^\n\nhttps://dev.twitter.com/apps/new\n\nSet the callback URL to http://localhost:8000/socialprofile/socialauth/complete/twitter/ for development when\nyou set up the API key.\n\nFacebook\n^^^^^^^^\n\nFacebook is a bit of a pain, since you can only have one URL per API key.\n\nhttps://developers.facebook.com/apps\n\nSet the site URL http://localhost:8000/ for local development.\n\nFacebook also allows you to request additional information beyond authentication. The default setup\nassumes you are requesting the user's email address. See below for how to note that in the API settings.\n\nSee https://developers.facebook.com/docs/authentication/permissions/#extended_perms for details\non other permissions you can request.\n\nAdd API Keys to Settings\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake the keys from your APIs and add them to your settings::\n\n SOCIAL_AUTH_TWITTER_KEY = ''\n SOCIAL_AUTH_TWITTER_SECRET = ''\n SOCIAL_AUTH_FACEBOOK_KEY = ''\n SOCIAL_AUTH_FACEBOOK_SECRET = ''\n SOCIAL_AUTH_FACEBOOK_SCOPE = ['public_profile', 'email']\n SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {'fields': 'first_name,last_name,gender,picture,link'}\n SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = ''\n SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = ''\n SOCIAL_AUTH_GOOGLE_OAUTH_SCOPE = ['https://www.googleapis.com/auth/userinfo.profile',]\n\nNote that the extended permissions and such there are typical, you may also want to request the ability to post as that user\nand so forth.\n\nDjango Admin\n============\n\nThis project creates a ``SocialProfile`` object for each User that is registered via one of the social methods.\nThe data on this profile can be viewed and edited in the Django admin by editing the ``User`` object.\nThe ``SocialProfile`` data appears at the bottom of the ``User`` detail in the Django admin.\n\nTo do this, a custom ``User`` admin definition is created in ``admin.py``, so if you have other things that override\nthe User admin, you'll want to merge this customization in with that, or provide your own admin definition for ``SocialProfile``.\n\nViews and Layers\n================\n\nLogin Modal Layer\n-----------------\n\nThe 'socialprofile/select' view provides a login modal that you can use to both force existing users to sign in\nas well as to enable new users to select how they want to authenticate to the site.\n\nIf you have LOGIN_URL set to ``/socialprofile/select/``, this will work automatically.\n\nThe default template has attributes to make this a nice modal using jQueryMobile, but the HTML is straightforward,\nand a custom template should be simple to create.\n\nSelf Profile View\n-----------------\n\nThe ``socialprofile/`` view lets a user see their own profile. The default template checks to see if they profile is\nindeed theirs, and displays an 'edit' button taking them to the ``socialprofile/edit/`` view.\n\nThis view supports a ``?returnTo=`` parameter to specify a URL path to return to once the user is done. The default template\nuses this for the ``< Return`` button.\n\nOther Profile View\n------------------\n\nThe ``socialprofile/view/`` view lets a user see any profile. You may want to adjust the template to hide any\nprofile fields that should not be public.\n\nThis view supports a ``?returnTo=`` parameter to specify a URL path to return to once the user is done. The default template\nuses this for the ``< Return`` button.\n\nProfile Edit View\n-----------------\n\nThe ``socialprofile/edit/`` view lets a user edit their own profile. In typical Django fashion, a GET request to this view\nwill display the form, while a POST request to this view will try and save the changes.\n\nThis view supports a ``?returnTo=`` parameter to specify a URL path to return to once the user is done. The default template\nuses this for the ``Cancel`` and ``Done`` button. When the form returns to the Self Profile View, it passes ``returnTo``.\n\nProfile Add Auth Type\n---------------------\n\nA user can add an additional social authentication type to their existing profile. If they originally created their\nprofile using Google auth, then they could add Facebook and Twitter, enabling them to sign in with any of those services\nand access the same account.\n\nTo do this, just have the customer log in with their new auth type, and python-socialauth will do the rest.\n\nProfile Delete Auth Type\n------------------------\n\nThis is a default feature of python-socialauth, and is available using::\n\n {% url \"social:disconnect\" user_social_auth.provider %}\n\n... in a template.\n\nDelete Account\n--------------\n\nIt is important to let customers remove their accounts, and the /socialprofile/delete view prompts them to ensure they\nreally want to delete their account before sending them to /socialprofile/delete/action?confirm=true.\n\nYou may want to provide your own function to do this, that perhaps only deactivates their account.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cyface/django-socialprofile", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-socialprofile", "package_url": "https://pypi.org/project/django-socialprofile/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-socialprofile/", "project_urls": { "Homepage": "https://github.com/cyface/django-socialprofile" }, "release_url": "https://pypi.org/project/django-socialprofile/1.2.1/", "requires_dist": null, "requires_python": "", "summary": "django-socialprofile enables users to manage their user profile built by logging in via a social service such as Google, Twitter, or Facebook. It relies on python-socialauth.", "version": "1.2.1" }, "last_serial": 2243104, "releases": { "0.1.6": [ { "comment_text": "", "digests": { "md5": "64dbbd20342d713ff7a3ac0597dc6009", "sha256": "22a23ad856ebcbe10e56a3e80c486a1553856a9d75e111597b6e7063f7bb9d4a" }, "downloads": -1, "filename": "django-socialprofile-0.1.6.tar.gz", "has_sig": false, "md5_digest": "64dbbd20342d713ff7a3ac0597dc6009", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12609, "upload_time": "2012-07-15T20:40:06", "url": "https://files.pythonhosted.org/packages/b4/5f/4e87609d87523902d8ca063c0008503b425e65b7e11a59302a6ee1e71a32/django-socialprofile-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "dd58c2214d12e1bbccf6eb4c759c7d7c", "sha256": "55bcfdecd5e5f85b33d01ec3eb3bedcce2124b3b868e797367de3c7acb0d551a" }, "downloads": -1, "filename": "django-socialprofile-0.1.7.tar.gz", "has_sig": false, "md5_digest": "dd58c2214d12e1bbccf6eb4c759c7d7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12601, "upload_time": "2012-07-25T03:24:45", "url": "https://files.pythonhosted.org/packages/c1/f4/b9e53165804602889a4a17f0d68165d656ec067050e8bd8ea301ef049601/django-socialprofile-0.1.7.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e8a958c99033e80135d750deba67c7c9", "sha256": "2cf43f023d932953e6f0d61a0988776bc0067cea445a35ed349f4807a2bacede" }, "downloads": -1, "filename": "django-socialprofile-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e8a958c99033e80135d750deba67c7c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12761, "upload_time": "2014-11-08T22:29:50", "url": "https://files.pythonhosted.org/packages/33/a0/ca437a10305bc3bf4ce6eb8550e1a026df99589be06d3017ce4d8c1168a5/django-socialprofile-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "fbd08188f46d04417a9d1b8aabbe5669", "sha256": "c66b5ba07d6c1f1583cde03de6f5db023e5b94a7143d03d3598d731f678649b3" }, "downloads": -1, "filename": "django-socialprofile-0.2.1.tar.gz", "has_sig": false, "md5_digest": "fbd08188f46d04417a9d1b8aabbe5669", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12900, "upload_time": "2014-11-08T23:57:09", "url": "https://files.pythonhosted.org/packages/bb/e6/0305d32d55e53d20f9e960f9878223b423d7da0a0e439ce0240d88dd7668/django-socialprofile-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "c8e12588dd38c02b8b2a7aa6204e71fe", "sha256": "4d309f94686b1ad7867d4edf629eacdcd9ff709a9c370a749b74cdbcbf5668a9" }, "downloads": -1, "filename": "django-socialprofile-0.2.2.tar.gz", "has_sig": false, "md5_digest": "c8e12588dd38c02b8b2a7aa6204e71fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17804, "upload_time": "2014-11-13T18:06:15", "url": "https://files.pythonhosted.org/packages/25/b3/bb042062e83463468425db09bd82af88375b59636b301fdd5b193f159988/django-socialprofile-0.2.2.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "2d82168c0c037bd7ad3daa2b1de4eb38", "sha256": "7891a2cfa2f271eb4485bbc5a6723cbf917bacafa6f2059133c654bd66162624" }, "downloads": -1, "filename": "django-socialprofile-1.1.tar.gz", "has_sig": false, "md5_digest": "2d82168c0c037bd7ad3daa2b1de4eb38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14215, "upload_time": "2015-12-29T06:07:10", "url": "https://files.pythonhosted.org/packages/6c/dd/3272321ce94657d757b5cbebf99969d9d2d208486d0940c02baa155d32fe/django-socialprofile-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "ccf056950d09b6c062aaf0c3209ef7e5", "sha256": "c2b80731c9e84b9cbad6d0f2f883509163d31529f571414661892134bd514f89" }, "downloads": -1, "filename": "django-socialprofile-1.2.tar.gz", "has_sig": false, "md5_digest": "ccf056950d09b6c062aaf0c3209ef7e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14272, "upload_time": "2016-06-06T04:39:59", "url": "https://files.pythonhosted.org/packages/35/d7/b131c0270e6fe9bffd77696f174c9d19b10cab9f61a56240503b3c551ac7/django-socialprofile-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "97b67e24a37715cd477859ed812b479d", "sha256": "fbc01293275b2ceebc52ac42b47cb0f6763abd3adba1ec1492f4bb30f732252b" }, "downloads": -1, "filename": "django-socialprofile-1.2.1.tar.gz", "has_sig": false, "md5_digest": "97b67e24a37715cd477859ed812b479d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14070, "upload_time": "2016-07-25T20:07:11", "url": "https://files.pythonhosted.org/packages/12/13/a6febd2aa79815d2810f4fe5b25761549997f05420b92f0ff10c86309ce5/django-socialprofile-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "97b67e24a37715cd477859ed812b479d", "sha256": "fbc01293275b2ceebc52ac42b47cb0f6763abd3adba1ec1492f4bb30f732252b" }, "downloads": -1, "filename": "django-socialprofile-1.2.1.tar.gz", "has_sig": false, "md5_digest": "97b67e24a37715cd477859ed812b479d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14070, "upload_time": "2016-07-25T20:07:11", "url": "https://files.pythonhosted.org/packages/12/13/a6febd2aa79815d2810f4fe5b25761549997f05420b92f0ff10c86309ce5/django-socialprofile-1.2.1.tar.gz" } ] }