def get_search_results(portal_type=None, uid=None, **kw): """Search the catalog and return the results :returns: Catalog search results :rtype: iterable """ # If we have an UID, return the object immediately if uid is not None: logger.info("UID '%s' found, returning the object immediately" % uid) return u.to_list(get_object_by_uid(uid)) # allow to search search for the Plone Site with portal_type include_portal = False if u.to_string(portal_type) == "Plone Site": include_portal = True # The request may contain a list of portal_types, e.g. # `?portal_type=Document&portal_type=Plone Site` if "Plone Site" in u.to_list(req.get("portal_type")): include_portal = True # Build and execute a catalog query results = search(portal_type=portal_type, uid=uid, **kw) if include_portal: results = list(results) + u.to_list(get_portal()) return results
def get_user(user_or_username=None): """Return Plone User :param user_or_username: Plone user or user id :type groupname: PloneUser/MemberData/str :returns: Plone MemberData :rtype: object """ if user_or_username is None: return None if hasattr(user_or_username, "getUserId"): return ploneapi.user.get(user_or_username.getUserId()) return ploneapi.user.get(userid=u.to_string(user_or_username))