'Check that this Invitation is set up properly.'

@validate_via_booleans
def validate(self):

    if (not self.public_key_signature):
        raise ValidationError('Public    key    signature    does    not    exist')
    elif (not self.invited_by):
        raise ValidationError('Public    key    signee    does    not    exist')
    elif (not self.is_authorized(self.invited_by)):
        raise ValidationError('Public    key    signee    is    on    a    different    zone    than    this    invitation,    did    not    create    the    zone,    and    is    not    trusted.')
    elif self.revoked:
        raise ValidationError('ZoneInvitation    was    revoked.')
    return True
