(Feature #19882) Validation for User type shell property and tests

This pull request resurrects PR #1595 which went stale. Now includes tests for creation as requested by @adrienthebo.