django-gar
Django app to handle CAS authentication and resource management for the french Gestionnaire d'Accès aux Ressources (GAR).
Features
- CAS authentication with GAR
- Institution management with subscription tracking
- Allocation monitoring for resources
- Caching of GAR data (allocations, subscriptions, ENT IDs)
- Admin interface for institution management
- CSV export of allocation reports
Installation
Install with pip:
pip install django-gar
Setup
In order to make django-gar work, you'll need to follow these steps:
1. Settings
Add the required configuration to your settings:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
'django_gar',
...
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_gar.middleware.GARMiddleware', # mandatory
...
)
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django_gar.backends.GARBackend',
...
)
2. Migrations
Run migrations to create the necessary database tables:
python manage.py migrate
3. Required Settings
Configure these mandatory settings:
# GAR Connection Settings
GAR_BASE_URL = "https://idp-auth.partenaire.test-gar.education.fr/"
GAR_BASE_SUBSCRIPTION_URL = "https://abonnement.partenaire.test-gar.education.fr/"
GAR_SUBSCRIPTION_PREFIX = "your_prefix"
GAR_DISTRIBUTOR_ID = "your_distributor_id"
# Authentication Certificates
GAR_CERTIFICATE_PATH = "/path/to/your/cert.pem"
GAR_KEY_PATH = "/path/to/your/key.pem"
# Resource Configuration
GAR_RESOURCES_ID = "your_resource_id"
GAR_ORGANIZATION_NAME = "Your Organization"
Optional settings with their defaults:
GAR_ACTIVE_USER_REDIRECT = "/" # Redirect after successful login
GAR_INACTIVE_USER_REDIRECT = "/" # Redirect for inactive users
GAR_QUERY_STRING_TRIGGER = "sso_id" # URL parameter for SSO
Management Commands
refresh_gar_caches
Updates GAR data caches for institutions.
# Refresh all institutions
python manage.py refresh_gar_caches
# Refresh specific institution
python manage.py refresh_gar_caches --uai=0123456A
The command updates:
- Resource allocation data
- Subscription information
Use cases:
- Initial setup of new institutions
- Manual cache refresh
- Troubleshooting GAR integration
refresh_gar_idents
Updates ENT IDs for all institutions from GAR.
python manage.py refresh_gar_idents
The command:
- Fetches the latest institution list from GAR
- Updates the ENT IDs (id_ent) for all matching institutions
- Performs updates in bulk for better performance
Use cases:
- Initial setup of new institutions
- Bulk update of ENT IDs
- Synchronizing with GAR institution list
Testing
Run tests with pytest:
# Install test dependencies
pip install -r test_requirements.txt
# Run tests
pytest
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Metadata
Release files for django-gar 4.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_gar-4.3.3.tar.gz | 34.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_gar-4.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 68.3 kB
Release files / django_gar-4.3.3.tar.gz
| Download URL | django_gar-4.3.3.tar.gz |
|---|---|
| Size | 34.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0ef27aa67b276aadb35d88349fcfb6a0bc828995c8b8a48e90b3d63303db667
|
|
BLAKE2b-256 checksum How to use checksums |
bf12a6d9257c805ba5655b47dfd8a4432d5b46f381a087291252601a4e1401c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.10
|
Release files / django_gar-4.3.3-py3-none-any.whl
| Download URL | django_gar-4.3.3-py3-none-any.whl |
|---|---|
| Size | 34.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94085e5603eed329cf4262f5446d6af0de9d3a73d9aacffa3ff404ee643accb4
|
|
BLAKE2b-256 checksum How to use checksums |
f2aa014e2fbbba50fde8681924d8922759480bb30f406f2027506e35ffe21124
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.11.10
|