def get(context, request, username=None): """Plone users route """ user_ids = [] # Don't allow anonymous users to query a user other than themselves if api.is_anonymous(): username = "******" # query all users if no username was given if username is None: user_ids = api.get_member_ids() elif username == "current": current_user = api.get_current_user() user_ids = [current_user.getId()] else: user_ids = [username] # Prepare batch size = req.get_batch_size() start = req.get_batch_start() batch = api.make_batch(user_ids, size, start) # get the user info for the user ids in the current batch users = map(get_user_info, batch.get_batch()) return { "pagesize": batch.get_pagesize(), "next": batch.make_next_url(), "previous": batch.make_prev_url(), "page": batch.get_pagenumber(), "pages": batch.get_numpages(), "count": batch.get_sequence_length(), "items": users, }
def get_batched(context, portal_type=None, uid=None, endpoint=None, **kw): """Get batched results """ # TODO: to move to baobab lims jsonapi ----- pm = getToolByName(context, 'portal_membership') roles = pm.getAuthenticatedMember().getRoles() if 'EMS' in roles or uid == "allowSharing": uid = None if portal_type == 'Sample': kw['object_provides'] = ISharableSample.__identifier__ req.get_request().form["catalog"] = "portal_catalog" else: raise Unauthorized( "You don't have access permission to {}".format(portal_type)) # TODO: ------ # fetch the catalog results results = get_search_results(portal_type=portal_type, uid=uid, **kw) # fetch the batch params from the request size = req.get_batch_size() start = req.get_batch_start() # check for existing complete flag complete = req.get_complete(default=_marker) if complete is _marker: # if the uid is given, get the complete information set complete = uid and True or False # return a batched record return get_batch(results, size, start, endpoint=endpoint, complete=complete)
def get_batched(context, portal_type=None, uid=None, endpoint=None, **kw): """Get batched results """ # TODO: to move to baobab lims jsonapi ----- pm = getToolByName(context, 'portal_membership') roles = pm.getAuthenticatedMember().getRoles() if 'EMS' in roles or uid == "allowSharing": uid = None if portal_type == 'Sample': kw['object_provides'] = ISharableSample.__identifier__ req.get_request().form["catalog"] = "portal_catalog" else: raise Unauthorized("You don't have access permission to {}".format(portal_type)) # TODO: ------ # fetch the catalog results results = get_search_results(portal_type=portal_type, uid=uid, **kw) # fetch the batch params from the request size = req.get_batch_size() start = req.get_batch_start() # check for existing complete flag complete = req.get_complete(default=_marker) if complete is _marker: # if the uid is given, get the complete information set complete = uid and True or False # return a batched record return get_batch(results, size, start, endpoint=endpoint, complete=complete)
def get_batched(portal_type=None, uid=None, endpoint=None, **kw): """Get batched results """ # fetch the catalog results results = get_search_results(portal_type=portal_type, uid=uid, **kw) # fetch the batch params from the request size = req.get_batch_size() start = req.get_batch_start() # check for existing complete flag complete = req.get_complete(default=_marker) if complete is _marker: # if the uid is given, get the complete information set complete = uid and True or False # return a batched record return get_batch(results, size, start, endpoint=endpoint, complete=complete)