Exemplo n.º 1
0
def validate_form(data):
    check = False
    data['corp'] = False
    try:
        verify = views.key_info(data['keyid'], data['vcode'])
    except:
        raise forms.ValidationError('Authentication failure! check keyID, vCode pair')
    if not verify.key.expires == '':
        raise forms.ValidationError('Key expired! Please generate not expired key')
    if verify.key.type in ('Character', 'Account'):
        if not verify.key.accessMask == VALID_MASK:
            raise forms.ValidationError('Wrong access mask, please generate API key with "268435455" access mask')
    else:
        if verify.key.type == 'Corporation':
            if verify.key.accessMask == DIR_MASK:
                data['corp'] = True
            else:
                raise forms.ValidationError('Wrong access mask, please generate API key with "67108863" access mask')
        else:
            check = True
    for cur in verify.key.characters:
        if not data['corp']:
            if Character.objects.filter(name=cur.characterName).exists():
                raise forms.ValidationError('This API already in database!')
        if views.char_in_corps(cur.corporationID):
            check = True
            data['corp_id'] = cur.corporationID
    if not check:
        raise forms.ValidationError('You have not a valid characters!')
    return data
Exemplo n.º 2
0
    def validate(self):
        from eve.views import key_info
        from ncxi.vars import VALID_MASK
        from eve.eveapi import Error
        from socket import gaierror

        try:
            verify = key_info(self.key_id, self.v_code)
            if (
                (not verify.key.accessMask == VALID_MASK)
                or (not verify.key.expires == "")
                or (not self.account_character.exists())
            ):
                self.delete()
                return False
        except Error:
            self.delete()
            return False
        except gaierror:
            return False
        return True