You could say that she was resolute
adjective
admirably purposeful, determined, and unwavering.
(oxforddictionaries.com)
Or simply firm
- Indicating or possessed of determination or resolution: a firm voice.
- Constant; steadfast
(thefreedictionary.com)
For two words, you might say she was nobody's fool
A person who cannot be duped or taken advantage of, as in You can't
put anything over on Ryan-he's nobody's fool.
(thefreedictionary.com)
You’re asking a lot for one word.
The only reason that narcissist works as a single word is because of its extended use as a metaphor derived from classical mythology. In particular, it’s a direct reference to the myth of Narcissus, the boy who loved himself too much and others too little.
Unless you can find a figure from literature or myth to serve as a foil for both those properties at once, you’re going to have a hard time satisfying your request. And I can’t think of any.
The closest word I can find for someone who beats themself up too much, or doesn't have enough self-love, is a flagellant. But even that word is improved by an explicit self reference, as in an autoflagellant.
These aren’t common words, and you may risk being misunderstood. They might even get the wrong connotation altogether, such as being a masochist or religious penitent.
Trying to describe someone who hates themself with a single word is going to be hard, although I see why you would like one for this particular instance. Being too much the altruist or having a messiah complex won’t fit the parallelism of your phrase.
Best Answer
I'd just say "free speech." Choose function over form; getting the meaning right is more important than hewing to the one-word meme, if communication is the intent.