Handle login and ticket validation for french GAR
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_gar-3.0.6.tar.gz.
File metadata
- Download URL: django_gar-3.0.6.tar.gz
- Upload date:
- Size: 33.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b6d894e42b2fa52a361388a7e378a91dbf1545605f0ab3ca066389ac58c7a1e
|
|
| MD5 |
408fc0b21e1470fbd07ce2d73b3b694a
|
|
| BLAKE2b-256 |
4a646d5c5dad30fc4ebec5a12426585d52916388132f778c7868aa76e7da27f4
|
File details
Details for the file django_gar-3.0.6-py3-none-any.whl.
File metadata
- Download URL: django_gar-3.0.6-py3-none-any.whl
- Upload date:
- Size: 33.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3144bbfa4b095cbefc125fb6a96e7645cd00ebd5687ee93a1e3661869118046
|
|
| MD5 |
310586cbf4c67a3a41c9c5d9e8758261
|
|
| BLAKE2b-256 |
ec35f0851ae0942cc8d1d0b7b7d91cfbaa44758754f9e0d51f59624f96366f5b
|