def get_subjects_with_equal_or_higher_perm(self, perm_str):
        """
    Args:
      perm_str : str
        Permission, ``read``, ``write`` or ``changePermission``.

    Returns:
      set of str : Subj that have perm equal or higher than ``perm_str``.

      Since the lowest permission a subject can have is ``read``, passing ``read``
      will return all subjects.
    """
        self._assert_valid_permission(perm_str)
        return {
            s
            for p in self._equal_or_higher_perm(perm_str)
            for s in self._perm_dict.get(p, set())
        }