Style and federated doc about the manage command cas_clean_federate

This commit is contained in:
Valentin Samir 2016-06-20 14:20:49 +02:00
parent 2b02568e5b
commit 0dba0d1776
2 changed files with 14 additions and 3 deletions

View File

@ -286,7 +286,7 @@ Federation mode
``django-cas-server`` comes with a federation mode. Then ``CAS_FEDERATE`` is ``True``, ``django-cas-server`` comes with a federation mode. Then ``CAS_FEDERATE`` is ``True``,
user are invited to choose an identity provider on the login page, then, they are redirected user are invited to choose an identity provider on the login page, then, they are redirected
to the provider CAS to authenticate. This provider transmit to ``django-cas-server`` the user to the provider CAS to authenticate. This provider transmit to ``django-cas-server`` the user
username and attributes. The user is now logged in on ``django-cas-server`` and can user username and attributes. The user is now logged in on ``django-cas-server`` and can use
services using ``django-cas-server`` as CAS. services using ``django-cas-server`` as CAS.
The list of allowed identity providers is defined using the ``CAS_FEDERATE_PROVIDERS`` parameter. The list of allowed identity providers is defined using the ``CAS_FEDERATE_PROVIDERS`` parameter.
@ -306,4 +306,13 @@ For instance:
In federation mode, ``django-cas-server`` build user's username as follow: In federation mode, ``django-cas-server`` build user's username as follow:
``provider_returned_username@provider_name``. ``provider_returned_username@provider_name``.
You can choose the provider returned username for ``django-cas-server`` and the provider name You can choose the provider returned username for ``django-cas-server`` and the provider name
in order than to builed username make sense. in order to make sense.
Then using federate mode, you should add one command to a daily crontab: ``cas_clean_federate``.
This command clean the local cache of federated user from old unused users.
You could for example do as bellow :
.. code-block::
10 0 * * * cas-user /path/to/project/manage.py cas_clean_federate

View File

@ -13,7 +13,9 @@ class Command(BaseCommand):
help = _(u"Clean old federated users") help = _(u"Clean old federated users")
def handle(self, *args, **options): def handle(self, *args, **options):
federated_users = models.FederatedUser.objects.filter(last_update__lt=(timezone.now() - timedelta(seconds=settings.CAS_TICKET_TIMEOUT))) federated_users = models.FederatedUser.objects.filter(
last_update__lt=(timezone.now() - timedelta(seconds=settings.CAS_TICKET_TIMEOUT))
)
for user in federated_users: for user in federated_users:
if not models.User.objects.filter(username='%s@%s' % (user.username, user.provider)): if not models.User.objects.filter(username='%s@%s' % (user.username, user.provider)):
user.delete() user.delete()