code: def is_sharable(self):
          
          return bool(
              self.sharable and
              all(x.is_sharable() for x in self.elements)
          )
docs: Can only be sharable if marked as such and no child element is blocking
          sharing due to security reasons.