app/soc/views/helper/access.py
changeset 617 9cc42981d40a
parent 612 3cca81b1e5a1
child 633 899ec5d546bd
equal deleted inserted replaced
616:580b1c21b808 617:9cc42981d40a
   213       'role': 'a site developer '}
   213       'role': 'a site developer '}
   214 
   214 
   215   raise out_of_band.LoginRequest(message_fmt=login_message_fmt)
   215   raise out_of_band.LoginRequest(message_fmt=login_message_fmt)
   216 
   216 
   217 
   217 
   218 def checkIsInvited(request, role):
   218 def checkIsInvited(request):
   219   """Returns an alternate HTTP response if Google Account has no Host entity
   219   """Returns an alternate HTTP response if Google Account has no Host entity
   220      for the specified program.
   220      for the specified program.
   221 
   221 
   222   Args:
   222   Args:
   223     request: A Django HTTP request
   223     request: A Django HTTP request
   231     should be returned by the calling view.
   231     should be returned by the calling view.
   232   """
   232   """
   233 
   233 
   234   checkIsUser(request)
   234   checkIsUser(request)
   235 
   235 
       
   236   login_message_fmt = DEF_DEV_LOGOUT_LOGIN_MSG_FMT % {
       
   237       'role': 'a host for this program'}
       
   238 
       
   239   splitpath = request.path.split('/')
       
   240 
       
   241   if len(splitpath) < 4:
       
   242     # TODO: perhaps this needs a better explanation?
       
   243     deny(request)
       
   244 
       
   245   role = splitpath[1]
       
   246   group_id = splitpath[3]
       
   247   user_id = splitpath[4]
       
   248 
   236   user = user_logic.logic.getForFields(
   249   user = user_logic.logic.getForFields(
   237       {'account': users.get_current_user()}, unique=True)
   250       {'account': users.get_current_user()}, unique=True)
   238 
   251 
       
   252   if user_id != user.link_id:
       
   253     # TODO: perhaps this needs a better explanation?
       
   254     deny(request)
       
   255 
   239   properties = {
   256   properties = {
   240       'requester': user,
   257       'link_id': user_id,
   241       'role': role,
   258       'role': role,
   242       'accepted': True,
   259       'scope_path': group_id,
       
   260       'group_accepted': True,
   243       }
   261       }
   244 
   262 
   245   request = request_logic.logic.getForFields(properties, unique=True)
   263   request = request_logic.logic.getForFields(properties, unique=True)
   246 
   264 
   247   if request:
   265   if request:
   248     return
   266     return
   249 
   267 
   250   login_message_fmt = DEF_DEV_LOGOUT_LOGIN_MSG_FMT % {
       
   251       'role': 'a host for this program'}
       
   252 
       
   253   raise out_of_band.LoginRequest(message_fmt=login_message_fmt)
   268   raise out_of_band.LoginRequest(message_fmt=login_message_fmt)