mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-11 05:20:16 +02:00
correct corp stat display for user-less chars
As a result of api key sso validation, character models can be created without assigning a user. If this occurs and a user attempts to view that character's corp stats, the view is unable to determine a main character due to a not null constraing on the authservicesinfo user field. This checks to see if the character has an associated user, and if not, does not check for associated main characters. Closes an issue @trustmeimlumi never opened.
This commit is contained in:
parent
f0a3df5659
commit
9db94e0ac8
@ -109,6 +109,8 @@ def corp_member_view(request, corpid=None, year=datetime.date.today().year, mont
|
|||||||
char = EveCharacter.objects.get(character_id=char_id)
|
char = EveCharacter.objects.get(character_id=char_id)
|
||||||
char_owner = char.user
|
char_owner = char.user
|
||||||
try:
|
try:
|
||||||
|
if not char_owner:
|
||||||
|
raise AttributeError("Character has no assigned user.")
|
||||||
mainid = int(AuthServicesInfo.objects.get_or_create(user=char_owner)[0].main_char_id)
|
mainid = int(AuthServicesInfo.objects.get_or_create(user=char_owner)[0].main_char_id)
|
||||||
mainchar = EveCharacter.objects.get(character_id=mainid)
|
mainchar = EveCharacter.objects.get(character_id=mainid)
|
||||||
mainname = mainchar.character_name
|
mainname = mainchar.character_name
|
||||||
@ -116,12 +118,22 @@ def corp_member_view(request, corpid=None, year=datetime.date.today().year, mont
|
|||||||
maincorpid = mainchar.corporation_id
|
maincorpid = mainchar.corporation_id
|
||||||
api_pair = EveApiKeyPair.objects.get(api_id=char.api_id)
|
api_pair = EveApiKeyPair.objects.get(api_id=char.api_id)
|
||||||
except (ValueError, EveCharacter.DoesNotExist, EveApiKeyPair.DoesNotExist):
|
except (ValueError, EveCharacter.DoesNotExist, EveApiKeyPair.DoesNotExist):
|
||||||
logger.info("No main character seem to be set for character %s" % char.character_name)
|
logger.debug("No main character seem to be set for character %s" % char.character_name)
|
||||||
mainname = "User: " + char_owner.username
|
mainname = "User: " + char_owner.username
|
||||||
mainchar = char
|
mainchar = char
|
||||||
maincorp = "Not set."
|
maincorp = "Not set."
|
||||||
maincorpid = None
|
maincorpid = None
|
||||||
api_pair = None
|
api_pair = None
|
||||||
|
except AttributeError:
|
||||||
|
logger.debug("No associated user for character %s" % char.character_name)
|
||||||
|
mainname = None
|
||||||
|
mainchar = None
|
||||||
|
maincorp = None
|
||||||
|
maincorpid = None
|
||||||
|
try:
|
||||||
|
api_pair = EveApiKeyPair.objects.get(api_id=char.api_id)
|
||||||
|
except EveApiKeyPair.DoesNotExist:
|
||||||
|
api_pair = None
|
||||||
num_registered_characters += 1
|
num_registered_characters += 1
|
||||||
characters_with_api.setdefault(mainname, Player(main=mainchar,
|
characters_with_api.setdefault(mainname, Player(main=mainchar,
|
||||||
user=char_owner,
|
user=char_owner,
|
||||||
@ -139,9 +151,11 @@ def corp_member_view(request, corpid=None, year=datetime.date.today().year, mont
|
|||||||
|
|
||||||
for char in EveCharacter.objects.filter(corporation_id=corpid):
|
for char in EveCharacter.objects.filter(corporation_id=corpid):
|
||||||
if not int(char.character_id) in member_list:
|
if not int(char.character_id) in member_list:
|
||||||
logger.info("Character '%s' does not exist in EveWho dump." % char.character_name)
|
logger.debug("Character '%s' does not exist in EveWho dump." % char.character_name)
|
||||||
char_owner = char.user
|
char_owner = char.user
|
||||||
try:
|
try:
|
||||||
|
if not char_owner:
|
||||||
|
raise AttributeError("Character has no assigned user.")
|
||||||
mainid = int(AuthServicesInfo.objects.get_or_create(user=char_owner)[0].main_char_id)
|
mainid = int(AuthServicesInfo.objects.get_or_create(user=char_owner)[0].main_char_id)
|
||||||
mainchar = EveCharacter.objects.get(character_id=mainid)
|
mainchar = EveCharacter.objects.get(character_id=mainid)
|
||||||
mainname = mainchar.character_name
|
mainname = mainchar.character_name
|
||||||
@ -149,12 +163,22 @@ def corp_member_view(request, corpid=None, year=datetime.date.today().year, mont
|
|||||||
maincorpid = mainchar.corporation_id
|
maincorpid = mainchar.corporation_id
|
||||||
api_pair = EveApiKeyPair.objects.get(api_id=char.api_id)
|
api_pair = EveApiKeyPair.objects.get(api_id=char.api_id)
|
||||||
except (ValueError, EveCharacter.DoesNotExist, EveApiKeyPair.DoesNotExist):
|
except (ValueError, EveCharacter.DoesNotExist, EveApiKeyPair.DoesNotExist):
|
||||||
logger.info("No main character seem to be set for character %s" % char.character_name)
|
logger.debug("No main character seem to be set for character %s" % char.character_name)
|
||||||
mainname = "User: " + char_owner.username
|
mainname = "User: " + char_owner.username
|
||||||
mainchar = char
|
mainchar = char
|
||||||
maincorp = "Not set."
|
maincorp = "Not set."
|
||||||
maincorpid = None
|
maincorpid = None
|
||||||
api_pair = None
|
api_pair = None
|
||||||
|
except AttributeError:
|
||||||
|
logger.debug("No associated user for character %s" % char.character_name)
|
||||||
|
mainname = None
|
||||||
|
mainchar = None
|
||||||
|
maincorp = None
|
||||||
|
maincorpid = None
|
||||||
|
try:
|
||||||
|
api_pair = EveApiKeyPair.objects.get(api_id=char.api_id)
|
||||||
|
except EveApiKeyPair.DoesNotExist:
|
||||||
|
api_pair = None
|
||||||
num_registered_characters += 1
|
num_registered_characters += 1
|
||||||
characters_with_api.setdefault(mainname, Player(main=mainchar,
|
characters_with_api.setdefault(mainname, Player(main=mainchar,
|
||||||
user=char_owner,
|
user=char_owner,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user