- user_query = Query().get('user').select('user_hrn','parent_authority').filter_by('user_hrn','==','$user_hrn')
- user_details = execute_query(self.request, user_query)
- try:
- env['user_details'] = user_details[0]
- except Exception,e:
- env['error'] = "Please check your Credentials"
+ if authority_hrn is None:
+ # CACHE PB with fields
+ page = Page(request)
+ metadata = page.get_metadata()
+ user_md = metadata.details_by_object('user')
+ user_fields = [column['name'] for column in user_md['column']]
+
+ # REGISTRY ONLY TO BE REMOVED WITH MANIFOLD-V2
+ user_query = Query().get('myslice:user').select(user_fields).filter_by('user_hrn','==','$user_hrn')
+ #user_query = Query().get('myslice:user').select('user_hrn','parent_authority').filter_by('user_hrn','==','$user_hrn')
+ user_details = execute_query(self.request, user_query)
+ try:
+ env['user_details'] = user_details[0]
+ except Exception,e:
+ # If the Query fails, check in local DB
+ try:
+ user_local_query = Query().get('local:user').select('config').filter_by('email','==',str(env['person']))
+ user_local_details = execute_query(self.request, user_local_query)
+ user_local = user_local_details[0]
+ user_local_config = user_local['config']
+ user_local_config = json.loads(user_local_config)
+ user_local_authority = user_local_config.get('authority')
+ if 'user_details' not in env or 'parent_authority' not in env['user_details'] or env['user_details']['parent_authority'] is None:
+ env['user_details'] = {'parent_authority': user_local_authority}
+ except Exception,e:
+ env['error'] = "Please check your Credentials"
+ else:
+ env['project'] = True
+ env['user_details'] = {'parent_authority': authority_hrn}
+
+ logger.debug("BEFORE ####------#### is_pi")
+ logger.debug("is_pi = {}".format(is_pi))
+ pi = is_pi(self.request, '$user_hrn', env['user_details']['parent_authority'])