Name | django-user-sessions-ng JSON |
Version |
0.1.7
JSON |
| download |
home_page | None |
Summary | Django User Sessions NG - a Django package to manage multiple user sessions. |
upload_time | 2024-10-02 17:23:16 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12 |
license | MIT License Copyright (c) 2024 yujinio Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
django
django-user-sessions-ng
session-management
sessions
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# django-user-sessions-ng
`django-user-sessions-ng` is a Django package which allows users to have multiple sessions and provides session management through the Django admin interface.
This project is originally inspired by (and based on) the following projects:
1. [django-user-sessions](https://github.com/jazzband/django-user-sessions)
2. [django-qsessions](https://github.com/QueraTeam/django-qsessions)
The changes made in this repo, however, are very minimal, and the package itself is more like an adaptation for personal use.
## Features
1. Multiple sessions per user.
2. Session management through the Django admin interface.
3. Cached session data for faster access.
4. Device information for each session.
5. IP address for each session.
6. (Optional) Location information for each session.
## Installation
1. Install the package using your favorite package manager, for example pip:
```bash
pip install django-user-sessions-ng
```
2. Add `django_user_sessions_ng` to your INSTALLED_APPS setting like this::
```python
INSTALLED_APPS = [
...,
"django_user_sessions_ng",
]
```
3. Add `django_user_sessions_ng.middleware.SessionMiddleware` to your MIDDLEWARE setting like this:
```python
MIDDLEWARE = [
...,
"django_user_sessions_ng.middleware.SessionMiddleware",
]
```
4. Set `SESSION_ENGINE` to `django_user_sessions_ng.backends.db` or `django_user_sessions_ng.backends.cached_db` depending on your preferences and whether you need cached db in your Django settings file:
```python
SESSION_ENGINE = "django_user_sessions_ng.backends.db"
```
or
```python
SESSION_ENGINE = "django_user_sessions_ng.backends.cached_db"
```
5. Run `python manage.py migrate` to create the necessary models.
6. (Optional) In order to enable the location information for each session, you will need to install the package called `geoip2` and download the GeoLite2 database from [MaxMind](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) or using the built-in `python manage.py download_geoip_db -k MAXMIND_LICENSE_KEY` command (you can get the `MAXMIND_LICENSE_KEY` by registering [at their website](https://www.maxmind.com/en/geolite2/signup) and registering a new license key) and set the `GEOIP_PATH` setting in your Django settings file to the path of the database file or directory containing multiple databases.
For example:
```python
GEOIP_PATH = "/path/to/GeoLite2"
```
or
```python
GEOIP_PATH = "/path/to/GeoLite2/GeoLite2-City.mmdb"
```
## Notes
1. Since this package replaces the functionality of the default Django session application (django.contrib.sessions), it is recommended to remove the `django.contrib.sessions` from the `INSTALLED_APPS` setting as well as `django.contrib.sessions.middleware.SessionMiddleware` from the `MIDDLEWARE` setting.
2. The package provides a management command `clearsessions` (simply imports the one from the original `django.contrib.sessions` package) which can be used to clear expired sessions. This command can be run using the following command:
```bash
python manage.py django_user_sessions_ng clearsessions
```
3. If for some reason the MaxMind base url for download changes, and the package doesn't get updated in time, there's an optional argument `-u` or `--maxmind-geoip-download-base-url` for the `download_geoip_db` command which can be used to specify the base url for downloading the database files.
For example:
```bash
python manage.py download_geoip_db -k MAXMIND_LICENSE_KEY -u "https://download.maxmind.com/app/geoip_download"
```
## Credits
1. Thanks to [JazzBand](https://github.com/jazzband) for their original [django-user-sessions](https://github.com/jazzband/django-user-sessions) implementation.
2. Thanks to [QueraTeam](https://github.com/QueraTeam) for their original [django-qsessions](https://github.com/QueraTeam/django-qsessions), particularly for their tests and `cached_db` implementation.
## License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "django-user-sessions-ng",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "django, django-user-sessions-ng, session-management, sessions",
"author": null,
"author_email": "yujin <root@yujin.io>",
"download_url": "https://files.pythonhosted.org/packages/c7/b1/a3d9b5db196bdc9d0b2ae8965f76b02568782436e12e4e1648c9f2ac9a22/django_user_sessions_ng-0.1.7.tar.gz",
"platform": null,
"description": "# django-user-sessions-ng\n\n`django-user-sessions-ng` is a Django package which allows users to have multiple sessions and provides session management through the Django admin interface.\n\nThis project is originally inspired by (and based on) the following projects:\n1. [django-user-sessions](https://github.com/jazzband/django-user-sessions)\n2. [django-qsessions](https://github.com/QueraTeam/django-qsessions)\n\nThe changes made in this repo, however, are very minimal, and the package itself is more like an adaptation for personal use.\n\n## Features\n1. Multiple sessions per user.\n2. Session management through the Django admin interface.\n3. Cached session data for faster access.\n4. Device information for each session.\n5. IP address for each session.\n6. (Optional) Location information for each session.\n\n## Installation\n\n1. Install the package using your favorite package manager, for example pip:\n ```bash\n pip install django-user-sessions-ng\n ```\n\n2. Add `django_user_sessions_ng` to your INSTALLED_APPS setting like this::\n ```python\n INSTALLED_APPS = [\n ...,\n \"django_user_sessions_ng\",\n ]\n ```\n\n3. Add `django_user_sessions_ng.middleware.SessionMiddleware` to your MIDDLEWARE setting like this:\n ```python\n MIDDLEWARE = [\n ...,\n \"django_user_sessions_ng.middleware.SessionMiddleware\",\n ]\n ```\n\n4. Set `SESSION_ENGINE` to `django_user_sessions_ng.backends.db` or `django_user_sessions_ng.backends.cached_db` depending on your preferences and whether you need cached db in your Django settings file:\n ```python\n SESSION_ENGINE = \"django_user_sessions_ng.backends.db\"\n ```\n or\n ```python\n SESSION_ENGINE = \"django_user_sessions_ng.backends.cached_db\"\n ```\n\n5. Run `python manage.py migrate` to create the necessary models.\n\n6. (Optional) In order to enable the location information for each session, you will need to install the package called `geoip2` and download the GeoLite2 database from [MaxMind](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) or using the built-in `python manage.py download_geoip_db -k MAXMIND_LICENSE_KEY` command (you can get the `MAXMIND_LICENSE_KEY` by registering [at their website](https://www.maxmind.com/en/geolite2/signup) and registering a new license key) and set the `GEOIP_PATH` setting in your Django settings file to the path of the database file or directory containing multiple databases.\n\n For example:\n ```python\n GEOIP_PATH = \"/path/to/GeoLite2\"\n ```\n or\n ```python\n GEOIP_PATH = \"/path/to/GeoLite2/GeoLite2-City.mmdb\"\n ```\n\n\n## Notes\n1. Since this package replaces the functionality of the default Django session application (django.contrib.sessions), it is recommended to remove the `django.contrib.sessions` from the `INSTALLED_APPS` setting as well as `django.contrib.sessions.middleware.SessionMiddleware` from the `MIDDLEWARE` setting.\n2. The package provides a management command `clearsessions` (simply imports the one from the original `django.contrib.sessions` package) which can be used to clear expired sessions. This command can be run using the following command:\n ```bash\n python manage.py django_user_sessions_ng clearsessions\n ```\n3. If for some reason the MaxMind base url for download changes, and the package doesn't get updated in time, there's an optional argument `-u` or `--maxmind-geoip-download-base-url` for the `download_geoip_db` command which can be used to specify the base url for downloading the database files.\n\n For example:\n ```bash\n python manage.py download_geoip_db -k MAXMIND_LICENSE_KEY -u \"https://download.maxmind.com/app/geoip_download\"\n ```\n\n## Credits\n1. Thanks to [JazzBand](https://github.com/jazzband) for their original [django-user-sessions](https://github.com/jazzband/django-user-sessions) implementation.\n2. Thanks to [QueraTeam](https://github.com/QueraTeam) for their original [django-qsessions](https://github.com/QueraTeam/django-qsessions), particularly for their tests and `cached_db` implementation.\n\n## License\nMIT\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2024 yujinio Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"summary": "Django User Sessions NG - a Django package to manage multiple user sessions.",
"version": "0.1.7",
"project_urls": {
"Repository": "https://github.com/yujinio/django-user-sessions-ng"
},
"split_keywords": [
"django",
" django-user-sessions-ng",
" session-management",
" sessions"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "eed23e33416dfecaa3a74706c4dc2cc6f22b252c9fcded2b7ae0353d5e9195cd",
"md5": "3c8d330068ee4a722af04931a939201d",
"sha256": "3a9968ac5f2ca132351fb2e3566963a61b90a89a25f7a8bf3a73fdeadb2e51fb"
},
"downloads": -1,
"filename": "django_user_sessions_ng-0.1.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3c8d330068ee4a722af04931a939201d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 12325,
"upload_time": "2024-10-02T17:23:15",
"upload_time_iso_8601": "2024-10-02T17:23:15.347259Z",
"url": "https://files.pythonhosted.org/packages/ee/d2/3e33416dfecaa3a74706c4dc2cc6f22b252c9fcded2b7ae0353d5e9195cd/django_user_sessions_ng-0.1.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c7b1a3d9b5db196bdc9d0b2ae8965f76b02568782436e12e4e1648c9f2ac9a22",
"md5": "3b4697261c947f11225f38189951bfcf",
"sha256": "13c73a2198c24f87211200579285047b82f474c6ae793c2d205bfc89a4098391"
},
"downloads": -1,
"filename": "django_user_sessions_ng-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "3b4697261c947f11225f38189951bfcf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 38562,
"upload_time": "2024-10-02T17:23:16",
"upload_time_iso_8601": "2024-10-02T17:23:16.741575Z",
"url": "https://files.pythonhosted.org/packages/c7/b1/a3d9b5db196bdc9d0b2ae8965f76b02568782436e12e4e1648c9f2ac9a22/django_user_sessions_ng-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-02 17:23:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yujinio",
"github_project": "django-user-sessions-ng",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "django-user-sessions-ng"
}