Initial commit
[cas.git] / provider / cas_provider / utils.py
1 from random import Random
2 import string
3
4 from cas_provider.models import ServiceTicket, LoginTicket
5
6 def _generate_string(length=8, chars=string.ascii_letters + string.digits):
7     """ Generates a random string of the requested length. Used for creation of tickets. """
8     return ''.join(Random().sample(chars, length))
9
10 def create_service_ticket(user, service):
11     """ Creates a new service ticket for the specified user and service.
12         Uses _generate_string.
13     """
14     ticket_string = 'ST-' + _generate_string(29) # Total ticket length = 29 + 3 = 32
15     ticket = ServiceTicket(service=service, user=user, ticket=ticket_string)
16     ticket.save()
17     return ticket
18
19 def create_login_ticket():
20     """ Creates a new login ticket for the login form. Uses _generate_string. """
21     ticket_string = 'LT-' + _generate_string(29)
22     ticket = LoginTicket(ticket=ticket_string)
23     ticket.save()
24     return ticket_string