User settings

This is a pull request for issues #455 and #456.

Yes, I've been meaning to centralize those validation functions.