From 20b9152a1c5676da0d8c026866d871e92910555f Mon Sep 17 00:00:00 2001
From: Raynaldo Rivera
Date: Sun, 12 Oct 2014 18:53:20 -0700
Subject: [PATCH] Added api mask to html added check
---
eveonline/forms.py | 11 +++++++++--
services/managers/eve_api_manager.py | 12 ++++++++++++
templates/registered/addapikey.html | 2 +-
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/eveonline/forms.py b/eveonline/forms.py
index bade5b41..a12baab0 100644
--- a/eveonline/forms.py
+++ b/eveonline/forms.py
@@ -1,6 +1,13 @@
from django import forms
-
+from services.managers.eve_api_manager import EveApiManager
class UpdateKeyForm(forms.Form):
api_id = forms.CharField(max_length=254, required=True, label="Key ID")
- api_key = forms.CharField(max_length=254, required=True, label="Verification Code")
\ No newline at end of file
+ api_key = forms.CharField(max_length=254, required=True, label="Verification Code")
+
+ def clean(self):
+ if not EveApiManager.check_api_is_type_account(self.cleaned_data['api_id'],
+ self.cleaned_data['api_key']):
+ raise forms.ValidationError(u'API not of type account')
+
+ return self.cleaned_data
\ No newline at end of file
diff --git a/services/managers/eve_api_manager.py b/services/managers/eve_api_manager.py
index 99489c53..47c8528f 100644
--- a/services/managers/eve_api_manager.py
+++ b/services/managers/eve_api_manager.py
@@ -34,3 +34,15 @@ class EveApiManager():
return ticker
+ @staticmethod
+ def check_api_is_type_account(api_id, api_key):
+ try:
+ api = evelink.api.API(api_key=(api_id, api_key))
+ account = evelink.account.Account(api=api)
+ info = account.key_info()
+ return info[0]['type'] == "account"
+
+ except evelink.api.APIError as error:
+ print error
+
+ return False
\ No newline at end of file
diff --git a/templates/registered/addapikey.html b/templates/registered/addapikey.html
index e395b961..61d6ef41 100644
--- a/templates/registered/addapikey.html
+++ b/templates/registered/addapikey.html
@@ -18,7 +18,7 @@
Alliance services: CharacterInfo
- Create a standard API key
+ Create a standard API key
Create a full API key