New consent model.

Preserves existing UI buttons and behavior. Replacing with a UI that directly
exposes the relevant fields will come later.
Nitpick: user {} here and line 62.