Exemple #1
0
 def foo():
     referenced_objects.rewarm_cache()
     revisions_diff.rewarm_latest_content()
     instance = referenced_objects.get(self.resource_type,
                                       self.resource_id)
     if instance:
         return revisions_diff.prepare(instance, self.content)
Exemple #2
0
  def access_control_list(self, values):
    """Setter function for access control list.

    Args:
        values: List of access control roles or dicts containing json
        representation of custom attribute values.
    """
    if values is None:
      return

    from ggrc.models import person

    for value in values:
      referenced_objects.mark_to_cache(person.Person, value["person"]["id"])
    referenced_objects.rewarm_cache(
        rewarm_type=person.Person,
        skip_cad=True,
        undefer=True,
    )

    persons_by_acl = defaultdict(set)
    for value in values:
      if value["ac_role_id"] not in self.acr_id_acl_map:
        raise BadRequest(errors.BAD_PARAMS)
      person = referenced_objects.get("Person", value["person"]["id"])
      acl = self.acr_id_acl_map[value["ac_role_id"]]
      persons_by_acl[acl].add(person)

    for acl in self._access_control_list:
      acl.update_people(persons_by_acl[acl])
Exemple #3
0
 def lazy_loader():
   """Lazy load diff for revisions."""
   referenced_objects.rewarm_cache()
   revisions_diff.rewarm_latest_content()
   instance = referenced_objects.get(self.resource_type, self.resource_id)
   if instance:
     return revisions_diff.prepare(instance, self.content)
Exemple #4
0
  def access_control_list(self, values):
    """Setter function for access control list.

    Args:
        values: List of access control roles or dicts containing json
        representation of custom attribute values.
    """
    if values is None:
      return

    from ggrc.models import person

    for value in values:
      referenced_objects.mark_to_cache(person.Person, value["person"]["id"])
    referenced_objects.rewarm_cache(
        rewarm_type=person.Person,
        skip_cad=True,
        undefer=True,
    )

    persons_by_acl = defaultdict(set)
    for value in values:
      if value["ac_role_id"] not in self.acr_id_acl_map:
        raise BadRequest(errors.BAD_PARAMS)
      person = referenced_objects.get("Person", value["person"]["id"])
      acl = self.acr_id_acl_map[value["ac_role_id"]]
      persons_by_acl[acl].add(person)

    for acl in self._access_control_list:
      acl.update_people(persons_by_acl[acl])
Exemple #5
0
 def lazy_loader():
   """Lazy load diff for revisions."""
   referenced_objects.rewarm_cache()
   instance = referenced_objects.get(self.resource_type, self.resource_id)
   meta_dict = {}
   if instance:
     instance_meta_info = meta_info.MetaInfo(instance)
     meta_dict["mandatory"] = instance_meta_info.mandatory
   return meta_dict
Exemple #6
0
 def lazy_loader():
   """Lazy load diff for revisions."""
   referenced_objects.rewarm_cache()
   instance = referenced_objects.get(self.resource_type, self.resource_id)
   meta_dict = {}
   if instance:
     instance_meta_info = meta_info.MetaInfo(instance)
     meta_dict["mandatory"] = instance_meta_info.mandatory
   return meta_dict
Exemple #7
0
 def lazy_loader():
   """Lazy load diff for revisions."""
   referenced_objects.rewarm_cache()
   revisions_diff.rewarm_latest_content()
   instance = referenced_objects.get(self.resource_type, self.resource_id)
   if instance:
     return revisions_diff.prepare(instance, self.content)
   # return empty diff object has already been removed
   return {}