def METHOD_NAME(self, *, note_may_exist=False):
    if self.event.is_locked:
        return
    if self.can_edit_note(session.user) and (note_may_exist or not self.session.has_note):
        yield 'notes_edit'
    if self.can_manage_attachments(session.user):
        yield 'attachments_edit'  # XXX for session, not block!
    if self.can_manage(session.user):
        yield 'session_block_edit'
    if self.session.can_manage(session.user, 'coordinate'):
        yield 'session_timetable_edit'
        yield 'session_protection_edit'