code: def permissions(self):
          
          # TODO: optimize this, it's kind of a bad solution for listing a mostly
          # static set of files.
          # We could either add a permissions dict as an attribute or cache this
          # in some way. Creating a dict would be another place we have to define
          # the permission, so I'm not a huge fan, but it would definitely be the
          # easier option.
          permissions_dict = {"self": {}, "parent": {}}
  
          for field in self.properties._meta.get_fields():
              split_field = field.name.split('_', 1)
              if len(split_field) <= 0 or split_field[0] not in ['self', 'parent']:
                  continue
              permissions_dict[split_field[0]][split_field[1]] = getattr(self.properties, field.name)
  
          return permissions_dict
docs: Dynamically generate dictionary of privacy options