<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def validate_with_permissions(self, val, caller_permissions):
 """ 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. """

        self.validate(val)
        self.validate_fields_only_with_permissions(val, caller_permissions)
        return val