From cdddfc815355c9e837ef7a8b12208a7166370972 Mon Sep 17 00:00:00 2001 From: Raynaldo Rivera Date: Thu, 16 Oct 2014 17:59:18 -0700 Subject: [PATCH] Added a check on the api key for duplicate keys --- celerytask/tasks.py | 4 ++-- eveonline/forms.py | 5 +++++ eveonline/managers.py | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/celerytask/tasks.py b/celerytask/tasks.py index 71c3a478..799d9c6c 100644 --- a/celerytask/tasks.py +++ b/celerytask/tasks.py @@ -108,7 +108,7 @@ def remove_from_databases(user, groups, syncgroups): update_forum_groups(user) -#run every minute +# Run every minute @periodic_task(run_every=crontab(minute="*/1")) def run_databaseUpdate(): users = User.objects.all() @@ -119,7 +119,7 @@ def run_databaseUpdate(): remove_from_databases(user, groups, syncgroups) -#run at midnight everyday +# Run every 3 hours @periodic_task(run_every=crontab(minute=0, hour="*/3")) def run_api_refresh(): users = User.objects.all() diff --git a/eveonline/forms.py b/eveonline/forms.py index a12baab0..3e66e054 100644 --- a/eveonline/forms.py +++ b/eveonline/forms.py @@ -1,11 +1,16 @@ from django import forms from services.managers.eve_api_manager import EveApiManager +from eveonline.managers import EveManager + 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") def clean(self): + if EveManager.check_if_api_key_pair_exist(self.cleaned_data['api_id']): + raise forms.ValidationError(u'API key already exist') + 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') diff --git a/eveonline/managers.py b/eveonline/managers.py index 18b92460..f0b11358 100644 --- a/eveonline/managers.py +++ b/eveonline/managers.py @@ -67,6 +67,13 @@ class EveManager: if EveApiKeyPair.objects.filter(user=user).exists(): return EveApiKeyPair.objects.filter(user=user) + @staticmethod + def check_if_api_key_pair_exist(api_id): + if EveApiKeyPair.objects.filter(api_id=api_id).exists(): + return True + else: + return False + @staticmethod def delete_api_key_pair(api_id, user_id): if EveApiKeyPair.objects.filter(api_id=api_id).exists():