Added logic to handle missing objects during run_api_refresh

This commit is contained in:
Adarnof 2015-11-06 23:22:47 +00:00
parent b8ac8c7561
commit 8e3221e5ec

View File

@ -211,7 +211,9 @@ def run_api_refresh():
if authserviceinfo.main_char_id: if authserviceinfo.main_char_id:
if authserviceinfo.main_char_id != "": if authserviceinfo.main_char_id != "":
#preserve old corp ID for corp change test on members #preserve old corp ID for corp change test on members
oldcorp_id = EveCharacter.objects.get(character_id=authserviceinfo.main_char_id).corporation_id oldcorp_id = 0
if EveManager.get_character_by_id(authserviceinfo.main_char_id):
oldcorp_id = EveCharacter.objects.get(character_id=authserviceinfo.main_char_id).corporation_id
for api_key_pair in api_key_pairs: for api_key_pair in api_key_pairs:
print 'Running on ' + api_key_pair.api_id + ':' + api_key_pair.api_key print 'Running on ' + api_key_pair.api_id + ':' + api_key_pair.api_key
if EveApiManager.api_key_is_valid(api_key_pair.api_id, api_key_pair.api_key): if EveApiManager.api_key_is_valid(api_key_pair.api_id, api_key_pair.api_key):
@ -227,59 +229,66 @@ def run_api_refresh():
if valid_key: if valid_key:
# Check our main character # Check our main character
character = EveManager.get_character_by_id(authserviceinfo.main_char_id) character = EveManager.get_character_by_id(authserviceinfo.main_char_id)
corp = EveManager.get_corporation_info_by_id(character.corporation_id) if character is not None and EveManager.check_if_corporation_exists_by_id(character.corporation_id):
main_corp_id = EveManager.get_charater_corporation_id_by_id(authserviceinfo.main_char_id) corp = EveManager.get_corporation_info_by_id(character.corporation_id)
main_alliance_id = EveManager.get_charater_alliance_id_by_id(authserviceinfo.main_char_id) main_corp_id = EveManager.get_charater_corporation_id_by_id(authserviceinfo.main_char_id)
if (settings.IS_CORP and main_corp_id == settings.CORP_ID) or (not settings.IS_CORP and main_alliance_id == settings.ALLIANCE_ID): main_alliance_id = EveManager.get_charater_alliance_id_by_id(authserviceinfo.main_char_id)
if not check_if_user_has_permission(user, "member"): if (settings.IS_CORP and main_corp_id == settings.CORP_ID) or (not settings.IS_CORP and main_alliance_id == settings.ALLIANCE_ID):
#transition from none or blue to member if not check_if_user_has_permission(user, "member"):
if check_if_user_has_permission(user, "blue_member"): #transition from none or blue to member
#strip blue status if check_if_user_has_permission(user, "blue_member"):
remove_member_permission(user, "blue_member") #strip blue status
remove_user_from_group(user, settings.DEFAULT_BLUE_GROUP) remove_member_permission(user, "blue_member")
AuthServicesInfoManager.update_is_blue(False, user) remove_user_from_group(user, settings.DEFAULT_BLUE_GROUP)
#add to auth group AuthServicesInfoManager.update_is_blue(False, user)
add_member_permission(user, "member") #add to auth group
add_user_to_group(user, settings.DEFAULT_AUTH_GROUP) add_member_permission(user, "member")
#add to required corp group add_user_to_group(user, settings.DEFAULT_AUTH_GROUP)
add_user_to_group(user, generate_corp_group_name(character.corporation_name)) #add to required corp group
elif corp.corporation_id != oldcorp_id: add_user_to_group(user, generate_corp_group_name(character.corporation_name))
#changed corps, both corps auth'd, need to change group assignment elif corp.corporation_id != oldcorp_id:
oldcorp = EveCorporationInfo.objects.get(corporation_id=oldcorp_id) #changed corps, both corps auth'd, need to change group assignment
remove_user_from_group(user, generate_corp_group_name(oldcorp.corporation_name)) oldcorp = EveCorporationInfo.objects.get(corporation_id=oldcorp_id)
add_user_to_group(user, generate_corp_group_name(character.corporation_name)) remove_user_from_group(user, generate_corp_group_name(oldcorp.corporation_name))
#reset services to force new mumble names and group assignments add_user_to_group(user, generate_corp_group_name(character.corporation_name))
deactivate_services(user) #reset services to force new mumble names and group assignments
elif corp is not None: deactivate_services(user)
if corp.is_blue is not True: elif corp is not None:
if corp.is_blue is not True:
if check_if_user_has_permission(user, "member"):
#transition from member to nobody
disable_alliance_member(user, authserviceinfo.main_char_id)
elif check_if_user_has_permission(user, "blue_member"):
#transition from blue to nobody
disable_blue_member(user)
else:
#stay nobody, make sure no services
deactivate_services(user)
else:
if check_if_user_has_permission(user, "member"):
#remove auth member to prepare for member to blue transition
disable_alliance_member(user, authserviceinfo.main_char_id)
if not check_if_user_has_permission(user, "blue_member"):
#perform nobody to blue transition
add_member_permission(user, "blue_member")
add_user_to_group(user, settings.DEFAULT_BLUE_GROUP)
AuthServicesInfoManager.update_is_blue(True, user)
else:
# disable accounts with missing corp model (not blue or member)
if check_if_user_has_permission(user, "member"): if check_if_user_has_permission(user, "member"):
#transition from member to nobody
disable_alliance_member(user, authserviceinfo.main_char_id) disable_alliance_member(user, authserviceinfo.main_char_id)
elif check_if_user_has_permission(user, "blue_member"): elif check_if_user_has_permission(user, "blue_member"):
#transition from blue to nobody
disable_blue_member(user) disable_blue_member(user)
else: else:
#stay nobody, make sure no services
deactivate_services(user) deactivate_services(user)
else:
if check_if_user_has_permission(user, "member"):
#remove auth member to prepare for member to blue transition
disable_alliance_member(user, authserviceinfo.main_char_id)
if not check_if_user_has_permission(user, "blue_member"):
#perform nobody to blue transition
add_member_permission(user, "blue_member")
add_user_to_group(user, settings.DEFAULT_BLUE_GROUP)
AuthServicesInfoManager.update_is_blue(True, user)
else: else:
# disable accounts with missing corp model (not blue or member)
if check_if_user_has_permission(user, "member"): if check_if_user_has_permission(user, "member"):
disable_alliance_member(user, authserviceinfo.main_char_id) disable_alliance_member(user, authserviceinfo.main_char_id)
elif check_if_user_has_permission(user, "blue_member"): elif check_if_user_has_permission(user, "blue_member"):
disable_blue_member(user) disable_blue_member(user)
else: else:
deactivate_services(user) deactivate_services(user)
else: else:
# disable accounts with invalid keys # disable accounts with invalid keys
if check_if_user_has_permission(user, "member"): if check_if_user_has_permission(user, "member"):