Updated UserRole to store a Role enum rather than Long. Kept public interface the same for backward compatability. Can pass a Long to store but is converted internally to Role. Throws an Invalid role exception if the Long is not in the enum.