Added blue support to the auth

This commit is contained in:
Raynaldo Rivera
2014-11-02 21:53:26 -07:00
parent f0e62f7f83
commit 48373c285a
19 changed files with 354 additions and 53 deletions

View File

@@ -7,17 +7,19 @@ 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")
is_blue = forms.BooleanField(label="Blue to alliance")
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')
if not self.cleaned_data['is_blue']:
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')
if not EveApiManager.check_api_is_full(self.cleaned_data['api_id'],
self.cleaned_data['api_key']):
raise forms.ValidationError(u'API supplied is not a full api key')
if not EveApiManager.check_api_is_full(self.cleaned_data['api_id'],
self.cleaned_data['api_key']):
raise forms.ValidationError(u'API supplied is not a full api key')
return self.cleaned_data

View File

@@ -68,7 +68,7 @@ class EveManager:
@staticmethod
def create_alliance_info(alliance_id, alliance_name, alliance_ticker, alliance_executor_corp_id,
alliance_member_count):
alliance_member_count, is_blue):
if not EveManager.check_if_alliance_exists_by_id(alliance_id):
alliance_info = EveAllianceInfo()
alliance_info.alliance_id = alliance_id
@@ -76,33 +76,38 @@ class EveManager:
alliance_info.alliance_ticker = alliance_ticker
alliance_info.executor_corp_id = alliance_executor_corp_id
alliance_info.member_count = alliance_member_count
alliance_info.is_blue = is_blue
alliance_info.save()
@staticmethod
def update_alliance_info(alliance_id, alliance_executor_corp_id, alliance_member_count):
def update_alliance_info(alliance_id, alliance_executor_corp_id, alliance_member_count, is_blue):
if EveManager.check_if_alliance_exists_by_id(alliance_id):
alliance_info = EveAllianceInfo.objects.get(alliance_id=alliance_id)
alliance_info.executor_corp_id = alliance_executor_corp_id
alliance_info.member_count = alliance_member_count
alliance_info.is_blue = is_blue
alliance_info.save()
@staticmethod
def create_corporation_info(corp_id, corp_name, corp_ticker, corp_member_count, alliance):
def create_corporation_info(corp_id, corp_name, corp_ticker, corp_member_count, is_blue, alliance):
if not EveManager.check_if_corporation_exists_by_id(corp_id):
corp_info = EveCorporationInfo()
corp_info.corporation_id = corp_id
corp_info.corporation_name = corp_name
corp_info.corporation_ticker = corp_ticker
corp_info.member_count = corp_member_count
corp_info.alliance = alliance
corp_info.is_blue = is_blue
if alliance:
corp_info.alliance = alliance
corp_info.save()
@staticmethod
def update_corporation_info(corp_id, corp_member_count, alliance):
def update_corporation_info(corp_id, corp_member_count, alliance, is_blue):
if EveManager.check_if_corporation_exists_by_id(corp_id):
corp_info = EveCorporationInfo.objects.get(corporation_id = corp_id)
corp_info = EveCorporationInfo.objects.get(corporation_id=corp_id)
corp_info.member_count = corp_member_count
corp_info.alliance = alliance
corp_info.is_blue = is_blue
corp_info.save()
@staticmethod
@@ -194,7 +199,10 @@ class EveManager:
else:
return None
@staticmethod
def get_all_corporation_info():
return EveCorporationInfo.objects.all()
return EveCorporationInfo.objects.all()
@staticmethod
def get_all_alliance_info():
return EveAllianceInfo.objects.all()

View File

@@ -31,6 +31,7 @@ class EveAllianceInfo(models.Model):
alliance_name = models.CharField(max_length=254)
alliance_ticker = models.CharField(max_length=254)
executor_corp_id = models.CharField(max_length=254)
is_blue = models.BooleanField(default=False)
member_count = models.IntegerField()
def __str__(self):
@@ -42,8 +43,8 @@ class EveCorporationInfo(models.Model):
corporation_name = models.CharField(max_length=254)
corporation_ticker = models.CharField(max_length=254)
member_count = models.IntegerField()
alliance = models.ForeignKey(EveAllianceInfo)
is_blue = models.BooleanField(default=False)
alliance = models.ForeignKey(EveAllianceInfo, blank=True, null=True)
def __str__(self):
return self.corporation_name

View File

@@ -78,11 +78,19 @@ def main_character_change(request, char_id):
previousmainid = AuthServicesInfoManager.get_auth_service_info(request.user).main_char_id
AuthServicesInfoManager.update_main_char_Id(char_id, request.user)
# Check if character is in the alliance
character_info = EveManager.get_character_by_id(char_id)
corporation_info = EveManager.get_corporation_info_by_id(character_info.corporation_id)
if EveManager.get_charater_alliance_id_by_id(char_id) == settings.ALLIANCE_ID:
add_member_permission(request.user, 'alliance_member')
add_user_to_group(request.user, settings.DEFAULT_ALLIANCE_GROUP)
add_user_to_group(request.user,
generate_corp_group_name(EveManager.get_character_by_id(char_id).corporation_name))
elif corporation_info.is_blue:
add_member_permission(request.user, 'blue_member')
add_user_to_group(request.user, settings.DEFAULT_BLUE_GROUP)
else:
# TODO: disable serivces
if check_if_user_has_permission(request.user, 'alliance_member'):
@@ -93,6 +101,11 @@ def main_character_change(request, char_id):
EveManager.get_character_by_id(previousmainid).corporation_name))
deactivate_services(request.user)
if check_if_user_has_permission(request.user, 'blue_member'):
remove_member_permission(request.user, 'blue_member')
remove_user_from_group(request.user, settings.DEFAULT_BLUE_GROUP)
deactivate_services(request.user)
return HttpResponseRedirect("/characters")
return HttpResponseRedirect("/characters")