cas_callbacks.py 1.01 KB
Newer Older
1
from django.contrib.auth.models import User
Daniel W Bond's avatar
Daniel W Bond committed
2
3
4

from accounts.models import Student

5
6
from django.conf import settings

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import requests

def pfinfo(uname):
    base_url = "http://peoplefinder.b1.akshaykarthik.com/"
    url = base_url + "basic/all/" + str(uname)
    try:
        metadata = requests.get(url)
        metadata.raise_for_status()
    except requests.exceptions.RequestException as e:
        print e
    else:
        pfjson = metadata.json()
        name = pfjson['results'][0]['name']
        return name.split(',')

22
23
24
25
26
27
28
def create_user(tree):

    username = tree[0][0].text
    user, user_created = User.objects.get_or_create(username=username)

    if user_created:
        user.email = "%s@%s" % (username, settings.ORGANIZATION_EMAIL_DOMAIN)
29
30
31
32
33

        name_list = pfinfo(username)
        user.first_name = name_list[1].rstrip()
        user.last_name = name_list[0]

34
        user.save()
35

Jason D Yeomans's avatar
Jason D Yeomans committed
36
37
        new_student = Student.objects.create(user=user)
        new_student.save()
38
39

        print("Created user %s!" % username)