def transitions(self, current=True):
        """
        Returns available transitions for the current state, as a dictionary of
        name: :class:`StateTransitionWrapper`.

        :param bool current: Limit to transitions available in ``obj.``
           :meth:`~coaster.sqlalchemy.mixins.RoleMixin.current_access`
        """
        if current and isinstance(self.obj, RoleMixin):
            proxy = self.obj.current_access()
        else:
            proxy = {}
            current = False  # In case the host object is not a RoleMixin
        return OrderedDict((name, transition) for name, transition in
            # Retrieve transitions from the host object to activate the descriptor.
            ((name, getattr(self.obj, name)) for name in self.statemanager.transitions)
            if transition.is_available and (name in proxy if current else True))