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
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