Changeset 1092 for WAeUP_SRP/trunk/skins


Ignore:
Timestamp:
19 Dec 2006, 11:07:58 (18 years ago)
Author:
Henrik Bettermann
Message:

logged_in.py slimmed down

Location:
WAeUP_SRP/trunk/skins/waeup_custom
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/trunk/skins/waeup_custom/logged_in.py

    r1082 r1092  
    55##bind script=script
    66##bind subpath=traverse_subpath
    7 ##parameters=came_from=None
     7##parameters=
    88##title=
    99##
     
    2121from urllib import unquote
    2222
    23 def 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 
    3323request = context.REQUEST
    3424response = request.RESPONSE
     
    3727wftool = context.portal_workflow
    3828portal = utool.getPortalObject()
    39 portal_absolute_url = portal.absolute_url()
    4029
    41 redirect_url = came_from
    4230redirect_to_portal = False
    43 to_member_home = False
    44 to_workspaces = False
    45 to_waeup_student_home = False
    46 
    4731is_anon = mtool.isAnonymousUser()
    4832member = mtool.getAuthenticatedMember()
    4933
    50 if redirect_url and redirect_url.endswith('/logged_out'):
    51     redirect_to_portal = True
    52 else:
    53     if not is_anon:
    54         if "Student" in member.getRoles():
    55             to_waeup_student_home = True
    56             students = context.portal_url.getPortalObject().campus.students
    57             student = getattr(students,str(member))
    58             student_app = getattr(student,'application')
    59             student_pume = getattr(student,'pume',None)
    60             s_review_state = wftool.getInfoFor(student,'review_state',None)
    61             a_review_state = wftool.getInfoFor(student_app,'review_state',None)
    62             logger.info('"%s", "logged in", "review_state %s"' % (member,s_review_state))
    63             app_doc = student_app.getContent()
    64             #from Products.zdb import set_trace
    65             #set_trace()
    66             if s_review_state in ("student_created","admitted") and\
    67             a_review_state == 'created' :
    68                 wftool.doActionFor(student_app,'open')
    69                 if student_pume is not None:
    70                   wftool.doActionFor(student_pume,'close')
    71                 da = {}
    72                 pin = request.get('pin')
    73                 if not pin:
    74                     jamb_reg_no = app_doc.jamb_reg_no
    75                     for reg_no in (jamb_reg_no,jamb_reg_no.lower(),jamb_reg_no.upper()):
    76                         res = context.portal_pins(student=reg_no)
    77                         if len(res) > 0:
    78                             break
    79                     if len(res) > 0:
    80                         p = res[0].pin
    81                         if len(p) > 10:
    82                             pin = "%s-%s-%s" % (p[:3],p[3:4],p[4:])
    83                         else:
    84                             pin = p
    85                 da['app_ac_pin'] = pin
    86                 da['app_ac_date'] = current
    87                 app_doc.edit(mapping = da)
    88             elif s_review_state in ("admitted") and a_review_state == 'opened' and\
    89             not app_doc.app_ac_pin:
     34if not is_anon:
     35    if "Student" in member.getRoles():
     36        to_waeup_student_home = True
     37        students = context.portal_url.getPortalObject().campus.students
     38        student = getattr(students,str(member))
     39        student_app = getattr(student,'application')
     40        student_pume = getattr(student,'pume',None)
     41        s_review_state = wftool.getInfoFor(student,'review_state',None)
     42        a_review_state = wftool.getInfoFor(student_app,'review_state',None)
     43        logger.info('"%s", "logged in", "review_state %s"' % (member,s_review_state))
     44        app_doc = student_app.getContent()
     45        #from Products.zdb import set_trace
     46        #set_trace()
     47        if s_review_state in ("student_created","admitted") and\
     48        a_review_state == 'created' :
     49            wftool.doActionFor(student_app,'open')
     50            if student_pume is not None:
     51              wftool.doActionFor(student_pume,'close')
     52            da = {}
     53            pin = request.get('pin')
     54            if not pin:
    9055                jamb_reg_no = app_doc.jamb_reg_no
    9156                for reg_no in (jamb_reg_no,jamb_reg_no.lower(),jamb_reg_no.upper()):
     
    9964                    else:
    10065                        pin = p
    101                     da = {}
    102                     da['app_ac_pin'] = pin
    103                     app_doc.edit(mapping = da)
    104         elif "Manager" in member.getRoles():
    105             pass
    106         else:
    107             to_member_home, to_workspaces = checkRedirect(portal, mtool)
    108 
    109 if (not to_member_home) and (not to_workspaces):
    110     redirect_to_portal = True
    111 
    112 if to_waeup_student_home:
    113     #member.setProperties(last_login_time=current,login_time=current)
    114     #if info['review_state'] == "application_pin_entered":
    115     if s_review_state == "application_pin_entered":
    116         return response.redirect("%s/application_edit_form" % student.absolute_url())
    117     #elif info['review_state'] == "admitted":
    118     elif s_review_state in ('admitted', 'objection_raised',):
    119         return response.redirect("%s/admission_form" % student.absolute_url())
    120     #elif info['review_state'] == "clearance_pin_entered":
    121     elif s_review_state == "clearance_pin_entered":
    122         return response.redirect("%s/clearance_edit_form" % student.absolute_url())
    123     return response.redirect("%s/student_index" % student.absolute_url())
    124 
    125 elif to_member_home:
    126     redirect_url = mtool.getHomeFolder().absolute_url()
    127     logger.info('"%s", "logged in"' % (member))
    128 elif to_workspaces:
    129     redirect_url = portal.workspaces.absolute_url()
    130     logger.info('"%s", "logged in"' % (member))   
    131 elif redirect_to_portal:
    132     redirect_url = portal_absolute_url
    133     logger.info('"%s", "logged in"' % (member))
    134 
    135 REQUEST = context.REQUEST
    136 RESPONSE = REQUEST.RESPONSE
    137 
    138 # Setup skins
    139 if (getattr(utool, 'updateSkinCookie', False) and
    140     utool.updateSkinCookie()):
    141     context.setupCurrentSkin()
    142 
    143 # Anonymous
    144 if is_anon:
    145     RESPONSE.expireCookie('__ac', path='/')
     66            da['app_ac_pin'] = pin
     67            da['app_ac_date'] = current
     68            app_doc.edit(mapping = da)
     69        elif s_review_state in ("admitted") and a_review_state == 'opened' and\
     70        not app_doc.app_ac_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 = {}
     83                da['app_ac_pin'] = pin
     84                app_doc.edit(mapping = da)
     85        if s_review_state == "application_pin_entered":
     86            return response.redirect("%s/application_edit_form" % student.absolute_url())
     87        elif s_review_state in ('admitted', 'objection_raised',):
     88            return response.redirect("%s/admission_form" % student.absolute_url())
     89        elif s_review_state == "clearance_pin_entered":
     90            return response.redirect("%s/clearance_edit_form" % student.absolute_url())
     91        return response.redirect("%s/student_index" % student.absolute_url())
     92    else:
     93        logger.info('"%s", "logged in"' % (member))
     94        return response.redirect(portal.absolute_url())
     95else:
     96        # Setup skins
     97    if (getattr(utool, 'updateSkinCookie', False) and
     98        utool.updateSkinCookie()):
     99        context.setupCurrentSkin()
     100    response.expireCookie('__ac', path='/')
    146101    return context.user_logged_in_failed()
    147102
    148 login_time = member.getProperty('login_time', '2000/01/01')
    149 first_time = (str(login_time) == '2000/01/01')
    150103
    151 ##if first_time and member.has_role('Member') and not member.has_role('Student'):
    152 ##    mtool.createMemberArea()
    153 ##    now = context.ZopeTime()
    154 ##    member.setProperties(last_login_time=now, login_time=now)
    155 
    156 if to_member_home or to_workspaces:
    157     redirect_url = '%s/?%s' % (redirect_url, 'portal_status_message=psm_logged_in')
    158 RESPONSE.redirect(redirect_url)
Note: See TracChangeset for help on using the changeset viewer.