{ "info": { "author": "Mikhail Pyrev", "author_email": "mikhail.pyrev@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "django-host-user-override\n=========================\n\nOverrides current user based on host prefix. For example any request to\n``5.user.example.com`` (format can be changed in settings) becomes\nrequest as if you were logged in as user with ID 5. This allows you to\nbe logged in as different users in different tabs **at the same time**\nwithout losing your primary authenticated user.\n\nWorks only if you're logged in as superuser by default (can be changed\nin settings).\n\nAlso gives you big red banner on top of every page if your user is\noverridden.\n\nRequirements\n------------\n\n- Your DNS server should resolve subdomains ``*.user.`` to\n the same IP address as main domain.\n- Your project should not use absolute link generation or any other\n technic that can change current subdomain. It is a more inconvenience\n than requirement though.\n\nInstalling django-host-user-override\n------------------------------------\n\n1. Install the package from PyPI:\n ``pip install django-host-user-override``\n\n2. Add ``host_user_override`` to ``INSTALLED_APPS``:\n\n .. code:: python\n\n INSTALLED_APPS = [\n ...,\n 'host_user_override',\n ...,\n ]\n\n3. Add ``HostUserOverrideMiddleware`` right after\n ``AuthenticationMiddleware``:\n\n .. code:: python\n\n MIDDLEWARE = [\n ...,\n 'django.contrib.auth.middleware.AuthenticationMiddleware',\n 'host_user_override.middleware.HostUserOverrideMiddleware',\n ...,\n ]\n\n4. Update your ``settings.py`` file to support subdomains (don't forget\n about DNS as well): \\`\\`\\`python ALLOWED\\_HOSTS = ['.example.com']\n\nSESSION\\_COOKIE\\_DOMAIN = '.example.com' \\`\\`\\`\n\n5. Set new ``change_form.html`` template in ``UserAdmin``: \\`\\`\\`python\n admin.site.unregister(User)\n\n@admin.register(User) class CustomUserAdmin(UserAdmin):\nchange\\_form\\_template = 'host\\_user\\_override/change\\_form.html' \\`\\`\\`\n\nOptional settings\n~~~~~~~~~~~~~~~~~\n\n6. Update ``settings.py`` if you want host pattern other than\n ``.user.``. Example for ``u.``: \\`\\`\\`python\n HOSTUSEROVERRIDE\\_HOST\\_REGEXP = r'u(:raw-latex:`\\d`+)..+'\n\nHOSTUSEROVERRIDE\\_HOST\\_SUB\\_REGEXP = r'u:raw-latex:`\\d`+.'\n\nHOSTUSEROVERRIDE\\_REDIRECT\\_URL\\_FORMAT = 'http://u{user\\_id}.{host}/'\n\nHOSTUSEROVERRIDE\\_PERMANENT\\_REDIRECT = False \\`\\`\\`\n\n7. Set ``HOSTUSEROVERRIDE_PERMISSION_CHECK`` to customize required\n permissions. Should be function that takes 2 positional arguments:\n current user and desired user.\n\n8. Set ``HOSTUSEROVERRIDE_FORCE_ACTIVE`` to force overriden user to be\n active even when he is actually disabled.\n\nUsage\n-----\n\nOpen any non-superuser in Django Admin and press 'Login as multiuser'\nbutton.\n\nLicense\n-------\n\nThis project is licensed under the MIT License - see the\n`LICENSE `__ file for details.\n\nAcknowledgments\n---------------\n\n- Props to django-debug-toolbar team for HTML injection code\n- Thanks to @dimoha for original idea\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mpyrev/django-host-user-override", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-host-user-override", "package_url": "https://pypi.org/project/django-host-user-override/", "platform": "", "project_url": "https://pypi.org/project/django-host-user-override/", "project_urls": { "Homepage": "https://github.com/mpyrev/django-host-user-override" }, "release_url": "https://pypi.org/project/django-host-user-override/0.4.3/", "requires_dist": [ "Django (>=1.10)" ], "requires_python": "", "summary": "Override current user based on subdomain", "version": "0.4.3" }, "last_serial": 4468661, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "a4fc81426c12e45ea6750294a34db9ae", "sha256": "731f7adc859c5904e8701cb4ef2be8908d6419090f6b27b14d87e71f7001ae79" }, "downloads": -1, "filename": "django_host_user_override-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a4fc81426c12e45ea6750294a34db9ae", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9793, "upload_time": "2017-12-15T12:36:43", "url": "https://files.pythonhosted.org/packages/8c/2a/c87121da9366e475557281d03841627cd737d71e5a8afdf8afb9cb3cd404/django_host_user_override-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a04508577c5eb05cc2b114daf25f1eeb", "sha256": "1d29938016653e63a5c70d773a2b3e0752c58bc8931bfb1da0ae5d5567490e09" }, "downloads": -1, "filename": "django-host-user-override-0.1.tar.gz", "has_sig": false, "md5_digest": "a04508577c5eb05cc2b114daf25f1eeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5921, "upload_time": "2017-12-15T12:36:44", "url": "https://files.pythonhosted.org/packages/68/a9/66e648737dc2125a78601715b42c3993e5e3d77e5e8389d95c2eebaecb7e/django-host-user-override-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "70b657703dd88f780f30519c78f383b9", "sha256": "1971bedc8c5030695e94229afca31ad53a408110b98ef50fed378ccd3a03f0ad" }, "downloads": -1, "filename": "django-host-user-override-0.2.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "70b657703dd88f780f30519c78f383b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9254, "upload_time": "2018-02-09T09:03:34", "url": "https://files.pythonhosted.org/packages/a0/64/49cda4e944c616950017129aa99b1143f1993e4bd8f52dd92352dd2448c3/django-host-user-override-0.2.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "4f3f428cfa2879f226134d2608eb0148", "sha256": "62cd2e44cc7cbf5f0e11a4a708f18dbf152dff0895253ce328a6b2b181277507" }, "downloads": -1, "filename": "django_host_user_override-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f3f428cfa2879f226134d2608eb0148", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11809, "upload_time": "2018-02-09T09:03:33", "url": "https://files.pythonhosted.org/packages/b2/e7/f9431a10fedcdf7d28c6bfc369c45c83d2b83cd36a28e22c34bfbeea8db5/django_host_user_override-0.2-py2.py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ff45787482e35f98ab06996a08137a54", "sha256": "4d6319bd0ba37aa91ade50cf67dad02f7a6e22a59b53bd36dd42c73584b158a8" }, "downloads": -1, "filename": "django-host-user-override-0.2.1.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "ff45787482e35f98ab06996a08137a54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9265, "upload_time": "2018-02-09T09:58:53", "url": "https://files.pythonhosted.org/packages/54/22/faf1e3ed6996fe56bea92c7eeb8029722ef62e08b563ea67c8ee54941be3/django-host-user-override-0.2.1.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "96769cda6a4a9c42c3f5f92d90bf8d71", "sha256": "ca39d9982b4592fb45693c6d28ef5c8afbea78bfbaa21e1c6595faccc7e75a96" }, "downloads": -1, "filename": "django_host_user_override-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "96769cda6a4a9c42c3f5f92d90bf8d71", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11896, "upload_time": "2018-02-09T09:40:20", "url": "https://files.pythonhosted.org/packages/ce/17/acfda9df3f14d9758645cb59a1d8ea4a883a81e4dccfeb2bf7918f5d10e7/django_host_user_override-0.2.1-py2.py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "7081de6bdd5b28cf3cb433203652d5c0", "sha256": "318af600aa4bf15e748e48fc20dee201d9c675c2207dd67d555f4ac5f667535f" }, "downloads": -1, "filename": "django-host-user-override-0.3.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "7081de6bdd5b28cf3cb433203652d5c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9566, "upload_time": "2018-04-12T12:08:14", "url": "https://files.pythonhosted.org/packages/3f/45/1c89cf38fa92c1a8fe1eed7088b05707889104144d51955d26bc16732d72/django-host-user-override-0.3.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "e259232de51f3938041db64b54efb94e", "sha256": "b0e1b78f819888026aa9ddce8aa62f92a22df02e2fa39bd2df4d47e43e7828ff" }, "downloads": -1, "filename": "django_host_user_override-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e259232de51f3938041db64b54efb94e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12152, "upload_time": "2018-04-12T12:08:12", "url": "https://files.pythonhosted.org/packages/09/c1/c1a99ec007a1900666074ba0a6935becc03c3fece7884584d479bd2213f7/django_host_user_override-0.3.0-py2.py3-none-any.whl" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "05a3a58d4f8b7b7b3539705564f758a0", "sha256": "6fbcf515a14968e9f23f9ddde51cc19d85733f1b62b5f933490fbe8670f16111" }, "downloads": -1, "filename": "django-host-user-override-0.3.1.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "05a3a58d4f8b7b7b3539705564f758a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9747, "upload_time": "2018-04-12T12:53:08", "url": "https://files.pythonhosted.org/packages/b8/d2/6ae91b5b3ccd288585aeced0ac9f15caab8c5fcf8d47bf1c74b7ad7ae8dc/django-host-user-override-0.3.1.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "35aee47413bc60c121f18ce7a92afb4f", "sha256": "755e14dd84bfa79f13d936b03434783d390109a2b04c2b200e2bf4cbfe1d56cd" }, "downloads": -1, "filename": "django_host_user_override-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "35aee47413bc60c121f18ce7a92afb4f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12222, "upload_time": "2018-04-12T12:53:06", "url": "https://files.pythonhosted.org/packages/a0/92/ba5d388b01b01fc527623686f1713325f5a8b9808bdbd55066b1fd5aa471/django_host_user_override-0.3.1-py2.py3-none-any.whl" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "01eba45dd159082e0942747e22de23fa", "sha256": "34f7ebba0b271be87705031c7f394c12aacd6289c9e553582449c45f03799454" }, "downloads": -1, "filename": "django-host-user-override-0.3.2.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "01eba45dd159082e0942747e22de23fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9760, "upload_time": "2018-04-12T12:58:56", "url": "https://files.pythonhosted.org/packages/4f/96/ba5ebaeb38e3e6954ea1cf7e56b067faf5fbe16c24bcfe2f97108140b7ac/django-host-user-override-0.3.2.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "9d6af23bc8be5b1ed9fb9e37e00ebce8", "sha256": "3b72435030c387d65fb06def7bf0a07709cd0bfe379ce3c666e11f978c0dbfa8" }, "downloads": -1, "filename": "django_host_user_override-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9d6af23bc8be5b1ed9fb9e37e00ebce8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12235, "upload_time": "2018-04-12T12:58:55", "url": "https://files.pythonhosted.org/packages/df/b8/06c94c5c1e1a3b19058db59ac8a854f798565fe4af50bc03c4d648d33756/django_host_user_override-0.3.2-py2.py3-none-any.whl" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d298d23c9a1cc15f924f42323cb14955", "sha256": "f7a58b39d6a9031981f77d47b73dd5692eecfae5050cb97d28cb0e4fdc56ddb7" }, "downloads": -1, "filename": "django_host_user_override-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d298d23c9a1cc15f924f42323cb14955", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12631, "upload_time": "2018-11-07T14:47:15", "url": "https://files.pythonhosted.org/packages/a7/7b/98a7f15cb5eb6942ee55b9cb157097cf960cfb0f2eddd7f9a4d626012ecf/django_host_user_override-0.4.0-py2.py3-none-any.whl" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "3e5171ca539cbf5978c91d126dd05108", "sha256": "06ac0a1dbbc93ef9965aefe5a7264ff9818f5d4a08c79e8a44b8b6dcf6345a9e" }, "downloads": -1, "filename": "django_host_user_override-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3e5171ca539cbf5978c91d126dd05108", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12752, "upload_time": "2018-11-08T08:07:09", "url": "https://files.pythonhosted.org/packages/19/98/aef6f5bc98e346ee32f6dc5ef283b228dcfdaad618568044f2c489d7bd11/django_host_user_override-0.4.1-py2.py3-none-any.whl" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "2ebc627cff49b7d47c8e2ef263e5d4e3", "sha256": "8fb6beb69a93337f9a9fd120413cd32d91765a95118acf39d197de9862247aac" }, "downloads": -1, "filename": "django_host_user_override-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ebc627cff49b7d47c8e2ef263e5d4e3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12769, "upload_time": "2018-11-08T08:36:47", "url": "https://files.pythonhosted.org/packages/26/00/bb661ad0717ba4404084668ead222a5400560fa81124c65ca691a59111e2/django_host_user_override-0.4.2-py2.py3-none-any.whl" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "9a467724578b1372e9cac9107c0141e6", "sha256": "cc7b97d7d6a594c8cc21442f77a5d13c77b0b9389a5791131fcd2bef41c71733" }, "downloads": -1, "filename": "django_host_user_override-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9a467724578b1372e9cac9107c0141e6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12716, "upload_time": "2018-11-09T09:01:57", "url": "https://files.pythonhosted.org/packages/67/c3/1f643773b49b4752590b8dc72f786565e2e949c06c4feecdf2ce5ceaa28f/django_host_user_override-0.4.3-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9a467724578b1372e9cac9107c0141e6", "sha256": "cc7b97d7d6a594c8cc21442f77a5d13c77b0b9389a5791131fcd2bef41c71733" }, "downloads": -1, "filename": "django_host_user_override-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9a467724578b1372e9cac9107c0141e6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12716, "upload_time": "2018-11-09T09:01:57", "url": "https://files.pythonhosted.org/packages/67/c3/1f643773b49b4752590b8dc72f786565e2e949c06c4feecdf2ce5ceaa28f/django_host_user_override-0.4.3-py2.py3-none-any.whl" } ] }