{ "info": { "author": "Federico Capoano", "author_email": "nemesis@ninux.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP" ], "description": "openwisp-users\n==============\n\n.. image:: https://travis-ci.org/openwisp/openwisp-users.svg\n :target: https://travis-ci.org/openwisp/openwisp-users\n\n.. image:: https://coveralls.io/repos/openwisp/openwisp-users/badge.svg\n :target: https://coveralls.io/r/openwisp/openwisp-users\n\n.. image:: https://requires.io/github/openwisp/openwisp-users/requirements.svg?branch=master\n :target: https://requires.io/github/openwisp/openwisp-users/requirements/?branch=master\n :alt: Requirements Status\n\n.. image:: https://badge.fury.io/py/openwisp-users.svg\n :target: http://badge.fury.io/py/openwisp-users\n\n------------\n\nProvides basic multi-tenancy features for OpenWISP 2 (using the Django web-framework).\n\n------------\n\n.. contents:: **Table of Contents**:\n :backlinks: none\n :depth: 3\n\n------------\n\nDeploy it in production\n-----------------------\n\nAn automated installer is available at `ansible-openwisp2 `_.\n\nInstall stable version from pypi\n--------------------------------\n\nInstall from pypi:\n\n.. code-block:: shell\n\n pip install openwisp-users\n\nInstall development version\n---------------------------\n\nInstall tarball:\n\n.. code-block:: shell\n\n pip install https://github.com/openwisp/openwisp-users/tarball/master\n\nAlternatively you can install via pip using git:\n\n.. code-block:: shell\n\n pip install -e git+git://github.com/openwisp/openwisp-users#egg=openwisp_users\n\nIf you want to contribute, install your cloned fork:\n\n.. code-block:: shell\n\n git clone git@github.com:/openwisp-users.git\n cd openwisp-users\n python setup.py develop\n\nSetup (integrate in an existing django project)\n-----------------------------------------------\n\n``INSTALLED_APPS`` in ``settings.py`` should look like the following:\n\n.. code-block:: python\n\n INSTALLED_APPS = [\n 'django.contrib.auth',\n 'django.contrib.contenttypes',\n 'django.contrib.sessions',\n 'django.contrib.messages',\n 'django.contrib.staticfiles',\n 'django.contrib.admin',\n 'django.contrib.sites',\n 'django_extensions',\n 'allauth',\n 'allauth.account',\n 'allauth.socialaccount',\n 'openwisp_users',\n ]\n\nalso add ``AUTH_USER_MODEL`` and ``SITE_ID`` to your ``settings.py``::\n\n AUTH_USER_MODEL = 'openwisp_users.User'\n SITE_ID = 1\n\n``urls.py``:\n\n.. code-block:: python\n\n from django.conf.urls import include, url\n from django.contrib import admin\n from django.contrib.staticfiles.urls import staticfiles_urlpatterns\n\n urlpatterns = [\n url(r'^admin/', include(admin.site.urls)),\n url(r'^accounts/', include('allauth.urls')),\n ]\n\n urlpatterns += staticfiles_urlpatterns()\n\n\nFor additional steps to properly configure ``allauth`` in your project, please refer to their documentation: `allauth documentation installation section `_.\n\nInstalling for development\n--------------------------\n\nInstall sqlite:\n\n.. code-block:: shell\n\n sudo apt-get install sqlite3 libsqlite3-dev openssl libssl-dev\n\nInstall your forked repo:\n\n.. code-block:: shell\n\n git clone git://github.com//openwisp-users\n cd openwisp-users/\n python setup.py develop\n\nInstall test requirements:\n\n.. code-block:: shell\n\n pip install -r requirements-test.txt\n\nCreate database:\n\n.. code-block:: shell\n\n cd tests/\n ./manage.py migrate\n ./manage.py createsuperuser\n\nSet ``EMAIL_PORT`` in ``settings.py`` to a port number (eg: ``1025``):\n\n.. code-block:: python\n\n EMAIL_PORT = '1025'\n\nLaunch development server and SMTP debugging server:\n\n.. code-block:: shell\n\n ./manage.py runserver\n # open another terminal and run\n python -m smtpd -n -c DebuggingServer localhost:1025\n\nYou can access the admin interface at http://127.0.0.1:8000/admin/.\n\nRun tests with:\n\n.. code-block:: shell\n\n ./runtests.py\n\nContributing\n------------\n\n1. Announce your intentions in the `OpenWISP Mailing List `_\n2. Fork this repo and install it\n3. Follow `PEP8, Style Guide for Python Code`_\n4. Write code\n5. Write tests for your code\n6. Ensure all tests pass\n7. Ensure test coverage does not decrease\n8. Document your changes\n9. Send pull request\n\n.. _PEP8, Style Guide for Python Code: http://www.python.org/dev/peps/pep-0008/\n\nChangelog\n---------\n\nSee `CHANGES `_.\n\nLicense\n-------\n\nSee `LICENSE `_.\n\nSupport\n-------\n\nSee `OpenWISP Support Channels `_.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/openwisp/openwisp-users/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://openwisp.org", "keywords": "openwisp,django,organizations,users", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "openwisp-users", "package_url": "https://pypi.org/project/openwisp-users/", "platform": "Platform Indipendent", "project_url": "https://pypi.org/project/openwisp-users/", "project_urls": { "Download": "https://github.com/openwisp/openwisp-users/releases", "Homepage": "http://openwisp.org" }, "release_url": "https://pypi.org/project/openwisp-users/0.1.10/", "requires_dist": [ "django-organizations (<1.2.0,>=1.0.0)", "django-extensions (<2.2,>=1.7.5)", "django-allauth (<0.37.0,>=0.35.0)" ], "requires_python": "", "summary": "Provides basic multi-tenancy features for OpenWISP 2 (using the Django web-framework)", "version": "0.1.10" }, "last_serial": 4124124, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "cf4437c1586fe5403ec0ab120a6b5c3a", "sha256": "80bade2b56810a8dcb4c10655552d23c0b281281f14589e13f866a17e1c86edd" }, "downloads": -1, "filename": "openwisp_users-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "cf4437c1586fe5403ec0ab120a6b5c3a", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 13271, "upload_time": "2017-03-06T18:05:34", "url": "https://files.pythonhosted.org/packages/51/1e/492888f4bf009edd6e908ad4224ac680542227dbb500fe906c7fbc85e229/openwisp_users-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a0289b1fb1e6e3270bcd33841c5a853", "sha256": "4ed755678b6d1d08c7857e308d982b4337147bbbab63db72dd86aced9f0c24be" }, "downloads": -1, "filename": "openwisp-users-0.1.0.tar.gz", "has_sig": true, "md5_digest": "0a0289b1fb1e6e3270bcd33841c5a853", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11019, "upload_time": "2017-03-06T18:05:32", "url": "https://files.pythonhosted.org/packages/33/a0/1d5a4532854759ed805047e8f57c8e371fd271015257f7b4790d2b1be720/openwisp-users-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "78d85b3e68b9dfc1ba4a43c752f1d637", "sha256": "437888ded7c97097e32097f7f9814705b8f7a2e6914cb631e4b6188d6178b770" }, "downloads": -1, "filename": "openwisp_users-0.1.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "78d85b3e68b9dfc1ba4a43c752f1d637", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 14922, "upload_time": "2017-03-07T18:18:15", "url": "https://files.pythonhosted.org/packages/f0/f1/3b7ab2a64f10f7c3d4a5d6a6feec3f68f2d49705ddc23f410acb544b383a/openwisp_users-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70eed503c25bd5f5c637d749c8ad06e0", "sha256": "65feae85d663d0d6374939482a16be2b41065886dc9bfbd61cdf6239712ffa5a" }, "downloads": -1, "filename": "openwisp-users-0.1.1.tar.gz", "has_sig": true, "md5_digest": "70eed503c25bd5f5c637d749c8ad06e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11802, "upload_time": "2017-03-07T18:18:13", "url": "https://files.pythonhosted.org/packages/3b/07/a9a7431b4846349698a41049b09a021a3e078504a80c3f8c151e7563e7d2/openwisp-users-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "2ad9de497afa80571339a1945e1fa771", "sha256": "0b3070afafb9e182d4d8c96e1519fbfdf056f723100dcbeb72e9aff629e23aae" }, "downloads": -1, "filename": "openwisp_users-0.1.10-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2ad9de497afa80571339a1945e1fa771", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17555, "upload_time": "2018-08-01T10:36:37", "url": "https://files.pythonhosted.org/packages/8c/8b/07e5e20fa20d736e1d34407214462e8eee4f54891c490b0b1f3a7479867e/openwisp_users-0.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86df291d70b2dee61497553372c81a1b", "sha256": "dbd7919e63a18d392feec573e9034e407edaa029b5ebaa79624a3817d6a37f14" }, "downloads": -1, "filename": "openwisp-users-0.1.10.tar.gz", "has_sig": true, "md5_digest": "86df291d70b2dee61497553372c81a1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14926, "upload_time": "2018-08-01T10:36:39", "url": "https://files.pythonhosted.org/packages/e4/ef/d192f4ca7928c1bd0fceb80551adea7648bf62262f507c7e183ee6d1aed6/openwisp-users-0.1.10.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e003a4bb811167c0268757abae0e981d", "sha256": "c8102b3dfcc6b209c356f26231e189e1fdcfa479b3d4f015e86bd52a6b9286be" }, "downloads": -1, "filename": "openwisp_users-0.1.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e003a4bb811167c0268757abae0e981d", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 15924, "upload_time": "2017-03-10T11:18:26", "url": "https://files.pythonhosted.org/packages/ef/20/0fbbccaf5e7a3bb5a59f1426f48120a94a6c9e66b8d9fee02eb0d7a83172/openwisp_users-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "146eb0c643daf501e492598875ea8665", "sha256": "50d81131477ac8924c562fd6970aa2de03b721826853d03c2239dbc7c55e6130" }, "downloads": -1, "filename": "openwisp-users-0.1.2.tar.gz", "has_sig": true, "md5_digest": "146eb0c643daf501e492598875ea8665", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12533, "upload_time": "2017-03-10T11:18:25", "url": "https://files.pythonhosted.org/packages/63/65/978599bb136335d82c7932ba6e4e83551dcd39a52729211c3351f2f56826/openwisp-users-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a5a12ba4ad5086435d63a682514ee3db", "sha256": "a907ea82c2d125f752f4bf5fb18df54dcd3afb0a95d727d980f3758880e6212d" }, "downloads": -1, "filename": "openwisp_users-0.1.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a5a12ba4ad5086435d63a682514ee3db", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 16741, "upload_time": "2017-03-15T18:03:36", "url": "https://files.pythonhosted.org/packages/65/b1/445399f450408844bc9d9ac03c89207a7bf427e7d34c4a2d45350f7f5322/openwisp_users-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11ef876d52dcdd9362313b737a462d74", "sha256": "0de781181c7c8567239d7abf5bfad2944bc04c06e33b6c4d1f758eee4ee36cc2" }, "downloads": -1, "filename": "openwisp-users-0.1.3.tar.gz", "has_sig": true, "md5_digest": "11ef876d52dcdd9362313b737a462d74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12980, "upload_time": "2017-03-15T18:03:33", "url": "https://files.pythonhosted.org/packages/84/84/237c91b9dc529b729e0d2be4cf8f37467b2350c4618642dcb8ad27f242d1/openwisp-users-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "6e850cf1a4e8532cb98a1c8e321b3ee3", "sha256": "ab2be399b41cca416c6c0869e7deede4273f5f4cd5f40306684c6cc37cfdbf55" }, "downloads": -1, "filename": "openwisp_users-0.1.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "6e850cf1a4e8532cb98a1c8e321b3ee3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16833, "upload_time": "2017-05-15T15:47:32", "url": "https://files.pythonhosted.org/packages/0d/be/0aed0e79444652e08467dc76b5bb961d0c8f0e2afca908111a499eee3789/openwisp_users-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4aed7569cfc5cba891c61f3c697ebfc9", "sha256": "4683b7aaac83cb39028d1c3fb815b80e3646621f5b0ab528bde065c9a91afa72" }, "downloads": -1, "filename": "openwisp-users-0.1.4.tar.gz", "has_sig": true, "md5_digest": "4aed7569cfc5cba891c61f3c697ebfc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13187, "upload_time": "2017-05-15T15:47:30", "url": "https://files.pythonhosted.org/packages/2e/b7/0a148154da51ac6dafa3954327406f1235c622dec3c6a862da4d308c977f/openwisp-users-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "d6c51cb9b4b850e41d67083e787d210f", "sha256": "d01e8ae2b6095db7c779b7b4f29b0b0b90bfa46510d0049d5283b0a794848863" }, "downloads": -1, "filename": "openwisp_users-0.1.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d6c51cb9b4b850e41d67083e787d210f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18256, "upload_time": "2017-08-29T13:24:56", "url": "https://files.pythonhosted.org/packages/0a/82/f9ac8daef6417329beef547d993c5f020aa8f9ac9c8830d8a6127872795c/openwisp_users-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "543e3e5f719fae42e94bad3cdcaea89b", "sha256": "942c2a5e1fd76af120e4adf284c24d675f1e7f5b6109b264bf19cbaedb31a666" }, "downloads": -1, "filename": "openwisp-users-0.1.5.tar.gz", "has_sig": true, "md5_digest": "543e3e5f719fae42e94bad3cdcaea89b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14738, "upload_time": "2017-08-29T13:24:54", "url": "https://files.pythonhosted.org/packages/41/50/453d13fecd59262f5fa8942a103a857ed977aaec0c9656a5155036690024/openwisp-users-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "8c84a8ac62715ecb8525a28fe1c0ba07", "sha256": "3e79d952cc6596d3f4bf672cc60f06e25afc35b0f8bf50804505431ac883387c" }, "downloads": -1, "filename": "openwisp_users-0.1.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8c84a8ac62715ecb8525a28fe1c0ba07", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19194, "upload_time": "2017-12-02T21:16:59", "url": "https://files.pythonhosted.org/packages/fe/94/694ead496522b78c8886fd5ee2a49ac18f144bb0380580221c716a8387d9/openwisp_users-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "791bbf0ac4e04f57e19fe6694b4d2c01", "sha256": "5180bbb9366d16c95e573932c999e68fe4c136448100c4809568537e944a7e8c" }, "downloads": -1, "filename": "openwisp-users-0.1.6.tar.gz", "has_sig": true, "md5_digest": "791bbf0ac4e04f57e19fe6694b4d2c01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14920, "upload_time": "2017-12-02T21:16:57", "url": "https://files.pythonhosted.org/packages/eb/ed/e8b1c28e07d4f36952971a581e81677f8fd1bbe01db3bf9494301b11082a/openwisp-users-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "73edd13470e2d58e0b8f9047d79f9b95", "sha256": "96284e3d141d76c6a07b3364389ede459bd942304d18f876433128d843d40288" }, "downloads": -1, "filename": "openwisp_users-0.1.7-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "73edd13470e2d58e0b8f9047d79f9b95", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19195, "upload_time": "2017-12-22T17:03:44", "url": "https://files.pythonhosted.org/packages/e4/9e/055de97cd8d363a6507d5a4d7ed5d15a482ee9e93779d21752f9374868ee/openwisp_users-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fb0c972baf7d703ac29999c013e4a01", "sha256": "5b8377fb858c9da68b6fbea1e1a723deb07e1ae41d7aa82fc1d8e2f7cd69a02a" }, "downloads": -1, "filename": "openwisp-users-0.1.7.tar.gz", "has_sig": true, "md5_digest": "2fb0c972baf7d703ac29999c013e4a01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14938, "upload_time": "2017-12-22T17:03:41", "url": "https://files.pythonhosted.org/packages/9e/67/e277ccaab7b1bf9befe31d2aab9490497643e6e534ebc37acdd2fb85ef9b/openwisp-users-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "29199f6129e3a5422ad99c2036cb145b", "sha256": "e288a148a9304a44533d01da9bca8a75d6126e9ed563ddee878dbe721808ea26" }, "downloads": -1, "filename": "openwisp_users-0.1.8-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "29199f6129e3a5422ad99c2036cb145b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18428, "upload_time": "2018-02-19T12:49:49", "url": "https://files.pythonhosted.org/packages/41/14/c82a684e83e8cf6d9b94b7e10606b4c9fa04c1bcef51aebed1eaf1ee3d4e/openwisp_users-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93a5c3db50c5380e42ec82a7ae1e0500", "sha256": "6c9c8450a9af8f1b041f6fd28f1e4665546030aea91da813bc4465373924810d" }, "downloads": -1, "filename": "openwisp-users-0.1.8.tar.gz", "has_sig": true, "md5_digest": "93a5c3db50c5380e42ec82a7ae1e0500", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13553, "upload_time": "2018-02-19T12:49:51", "url": "https://files.pythonhosted.org/packages/82/40/d5ec8bb96906777f471344647dcf5c82ea430500fa9e334ee17f69684631/openwisp-users-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "b78368c67259762046a408bbed05f350", "sha256": "4095b90b5ceee90e841993df6c8832ac09e67e44aa8c6f4d8f5d849cb3ad9d01" }, "downloads": -1, "filename": "openwisp_users-0.1.9-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b78368c67259762046a408bbed05f350", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16608, "upload_time": "2018-07-27T10:00:21", "url": "https://files.pythonhosted.org/packages/b8/65/74254e79aeb99b28a1482d2baf21c2cb1ba999476c7d07837cb30d53dbf5/openwisp_users-0.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6250ec63b3cab2b2ad6d55f46b55e50b", "sha256": "6a568eba88fa48b4ef2b16034774d39bc7d59fc94ef60e652dd58179838ff4a4" }, "downloads": -1, "filename": "openwisp-users-0.1.9.tar.gz", "has_sig": true, "md5_digest": "6250ec63b3cab2b2ad6d55f46b55e50b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14143, "upload_time": "2018-07-27T10:00:23", "url": "https://files.pythonhosted.org/packages/99/43/ad341b8a7e40350aefaadee095db68577e92a0c900098834cf5f12b2f857/openwisp-users-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2ad9de497afa80571339a1945e1fa771", "sha256": "0b3070afafb9e182d4d8c96e1519fbfdf056f723100dcbeb72e9aff629e23aae" }, "downloads": -1, "filename": "openwisp_users-0.1.10-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2ad9de497afa80571339a1945e1fa771", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17555, "upload_time": "2018-08-01T10:36:37", "url": "https://files.pythonhosted.org/packages/8c/8b/07e5e20fa20d736e1d34407214462e8eee4f54891c490b0b1f3a7479867e/openwisp_users-0.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86df291d70b2dee61497553372c81a1b", "sha256": "dbd7919e63a18d392feec573e9034e407edaa029b5ebaa79624a3817d6a37f14" }, "downloads": -1, "filename": "openwisp-users-0.1.10.tar.gz", "has_sig": true, "md5_digest": "86df291d70b2dee61497553372c81a1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14926, "upload_time": "2018-08-01T10:36:39", "url": "https://files.pythonhosted.org/packages/e4/ef/d192f4ca7928c1bd0fceb80551adea7648bf62262f507c7e183ee6d1aed6/openwisp-users-0.1.10.tar.gz" } ] }