def validate_with_permissions(self, val, caller_permissions):
self.validate(val)<EOL>self.validate_fields_only_with_permissions(val, caller_permissions)<EOL>return val<EOL>
For a val to pass validation, val must be of the correct type and have
all required permissioned fields present. Should only be called
for callers with extra permissions.