source: WAeUP_SRP/trunk/skins/waeup_custom/logged_in.py @ 1005

Last change on this file since 1005 was 1004, checked in by joachim, 18 years ago

logging in logged_in

  • Property svn:keywords set to Id
File size: 5.2 KB
Line 
1## Script (Python) "logged_in"
2##bind container=container
3##bind context=context
4##bind namespace=
5##bind script=script
6##bind subpath=traverse_subpath
7##parameters=came_from=None
8##title=
9##
10"""Prepare user login
11modified from cps_default/logged_in.py
12
13$Id: logged_in.py 1004 2006-12-06 21:01:04Z joachim $
14"""
15import DateTime
16current = DateTime.DateTime()
17import logging
18logger = logging.getLogger('student_login')
19
20
21from urllib import unquote
22
23def checkRedirect(portal, mtool):
24    to_member_home = False
25    to_workspaces = False
26##    has_home = mtool.getHomeFolder()
27##    if has_home:
28##        to_member_home = True
29##    if not has_home and mtool.checkPermission('View', portal.workspaces):
30##        to_workspaces = True
31    return to_member_home, to_workspaces
32
33request = context.REQUEST
34response = request.RESPONSE
35utool = context.portal_url
36mtool = context.portal_membership
37wftool = context.portal_workflow
38portal = utool.getPortalObject()
39portal_absolute_url = portal.absolute_url()
40
41redirect_url = came_from
42redirect_to_portal = False
43to_member_home = False
44to_workspaces = False
45to_waeup_student_home = False
46
47is_anon = mtool.isAnonymousUser()
48member = mtool.getAuthenticatedMember()
49
50if not is_anon:
51    if "Student" in member.getRoles():
52        to_waeup_student_home = True
53        students = context.portal_url.getPortalObject().campus.students
54        student = getattr(students,str(member))
55        student_app = getattr(student,'application')
56        student_pume = getattr(student,'pume',None)
57        s_review_state = wftool.getInfoFor(student,'review_state',None)
58        a_review_state = wftool.getInfoFor(student_app,'review_state',None)
59        logger.info('%s review_state %s' % (member,s_review_state))
60        app_doc = student_app.getContent()
61        #from Products.zdb import set_trace
62        #set_trace()
63        if s_review_state in ("student_created","admitted") and\
64        a_review_state == 'created' :
65            wftool.doActionFor(student_app,'open')
66            if student_pume is not None:
67              wftool.doActionFor(student_pume,'close')
68            da = {}
69            pin = request.get('pin')
70            if not pin:
71                jamb_reg_no = app_doc.jamb_reg_no
72                for reg_no in (jamb_reg_no,jamb_reg_no.lower(),jamb_reg_no.upper()):
73                    res = context.portal_pins(student=reg_no)
74                    if len(res) > 0:
75                        break
76                if len(res) > 0:
77                    p = res[0].pin
78                    if len(p) > 10:
79                        pin = "%s-%s-%s" % (p[:3],p[3:4],p[4:])
80                    else:
81                        pin = p
82            da['app_ac_pin'] = pin
83            da['app_ac_date'] = current
84            app_doc.edit(mapping = da)
85        elif s_review_state in ("admitted") and a_review_state == 'opened' and\
86        not app_doc.app_ac_pin:
87            jamb_reg_no = app_doc.jamb_reg_no
88            for reg_no in (jamb_reg_no,jamb_reg_no.lower(),jamb_reg_no.upper()):
89                res = context.portal_pins(student=reg_no)
90                if len(res) > 0:
91                    break
92            if len(res) > 0:
93                p = res[0].pin
94                if len(p) > 10:
95                    pin = "%s-%s-%s" % (p[:3],p[3:4],p[4:])
96                else:
97                    pin = p
98                da = {}
99                da['app_ac_pin'] = pin
100                app_doc.edit(mapping = da)
101    elif "Manager" in member.getRoles():
102        pass
103    else:
104        to_member_home, to_workspaces = checkRedirect(portal, mtool)
105if (not to_member_home) and (not to_workspaces):
106    redirect_to_portal = True
107
108if to_waeup_student_home:
109    #member.setProperties(last_login_time=current,login_time=current)
110    #if info['review_state'] == "application_pin_entered":
111    if s_review_state == "application_pin_entered":
112        return response.redirect("%s/application_edit" % student.absolute_url())
113    #elif info['review_state'] == "admitted":
114    elif s_review_state == "admitted":
115        return response.redirect("%s/admission_form" % student.absolute_url())
116    #elif info['review_state'] == "clearance_pin_entered":
117    elif s_review_state == "clearance_pin_entered":
118        return response.redirect("%s/clearance_edit" % student.absolute_url())
119    return response.redirect("%s/student_index" % student.absolute_url())
120
121elif to_member_home:
122    redirect_url = mtool.getHomeFolder().absolute_url()
123elif to_workspaces:
124    redirect_url = portal.workspaces.absolute_url()
125elif redirect_to_portal:
126    redirect_url = portal_absolute_url
127
128REQUEST = context.REQUEST
129RESPONSE = REQUEST.RESPONSE
130
131# Setup skins
132if (getattr(utool, 'updateSkinCookie', False) and
133    utool.updateSkinCookie()):
134    context.setupCurrentSkin()
135
136# Anonymous
137if is_anon:
138    RESPONSE.expireCookie('__ac', path='/')
139    return context.user_logged_in_failed()
140
141login_time = member.getProperty('login_time', '2000/01/01')
142first_time = (str(login_time) == '2000/01/01')
143
144##if first_time and member.has_role('Member') and not member.has_role('Student'):
145##    mtool.createMemberArea()
146##    now = context.ZopeTime()
147##    member.setProperties(last_login_time=now, login_time=now)
148
149if to_member_home or to_workspaces:
150    redirect_url = '%s/?%s' % (redirect_url, 'portal_status_message=psm_logged_in')
151RESPONSE.redirect(redirect_url)
Note: See TracBrowser for help on using the repository browser.