diff --git a/alliance_auth/settings.py.example b/alliance_auth/settings.py.example index 47efc40c..d86a64df 100755 --- a/alliance_auth/settings.py.example +++ b/alliance_auth/settings.py.example @@ -20,6 +20,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! +# Generate a new key here: http://www.miniwebtool.com/django-secret-key-generator/ SECRET_KEY = os.environ.get('AA_SECRET_KEY', '5xvh4e0x&@-$6(kj%4^80pdo1n5v-!mtx(e(1tw@kn-1le*ts@') # SECURITY WARNING: don't run with debug turned on in production! @@ -77,8 +78,8 @@ DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'alliance_auth', - 'USER': os.environ.get('AA_DB_DEFAULT_USER', 'allianceauth'), - 'PASSWORD': os.environ.get('AA_DB_DEFAULT_PASSWORD', 'allianceauth'), + 'USER': os.environ.get('AA_DB_DEFAULT_USER', 'allianceserver'), + 'PASSWORD': os.environ.get('AA_DB_DEFAULT_PASSWORD', 'password'), 'HOST': os.environ.get('AA_DB_DEFAULT_HOST', '127.0.0.1'), 'PORT': os.environ.get('AA_DB_DEFAULT_PORT', '3306'), }, @@ -86,8 +87,8 @@ DATABASES = { 'phpbb3': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'alliance_forum', - 'USER': os.environ.get('AA_DB_PHPBB3_USER', 'allianceauth'), - 'PASSWORD': os.environ.get('AA_DB_PHPBB3_PASSWORD', 'allianceauth'), + 'USER': os.environ.get('AA_DB_PHPBB3_USER', 'allianceserver'), + 'PASSWORD': os.environ.get('AA_DB_PHPBB3_PASSWORD', 'password'), 'HOST': os.environ.get('AA_DB_PHPBB3_HOST', '127.0.0.1'), 'PORT': os.environ.get('AA_DB_PHPBB3_PORT', '3306'), }, @@ -95,8 +96,8 @@ DATABASES = { 'mumble': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'alliance_mumble', - 'USER': os.environ.get('AA_DB_MUMBLE_USER', 'alliancemumble'), - 'PASSWORD': os.environ.get('AA_DB_MUMBLE_PASSWORD', 'alliancemumble'), + 'USER': os.environ.get('AA_DB_MUMBLE_USER', 'allianceserver'), + 'PASSWORD': os.environ.get('AA_DB_MUMBLE_PASSWORD', 'password'), 'HOST': os.environ.get('AA_DB_MUMBLE_HOST', '127.0.0.1'), 'PORT': os.environ.get('AA_DB_MUMBLE_PORT', '3306'), } @@ -111,6 +112,9 @@ TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.tz', 'django.contrib.messages.context_processors.messages', 'django.core.context_processors.request', + 'util.context_processors.is_corp', + 'util.context_processors.corp_id', + 'util.context_processors.corp_name', 'util.context_processors.alliance_id', 'util.context_processors.alliance_name', 'util.context_processors.jabber_url', @@ -150,17 +154,27 @@ STATIC_URL = '/static/' ## ##################################################### +########################### +# ALLIANCE / CORP TOGGLE +########################### +# Specifies to run membership checks against corp or alliance +# Set to FALSE for alliance +# Set to TRUE for corp +########################### +IS_CORP = 'False' == os.environ.get('AA_IS_CORP', 'True') + + ################# # EMAIL SETTINGS ################# # DOMAIN - The alliance auth domain_url # EMAIL_HOST - SMTP Server URL # EMAIL_PORT - SMTP Server PORT -# EMAIL_HOST_USER - Email Username +# EMAIL_HOST_USER - Email Username (for gmail, the part before @gmail.com) # EMAIL_HOST_PASSWORD - Email Password # EMAIL_USE_TLS - Set to use TLS encryption ################# -DOMAIN = os.environ.get('AA_DOMAIN', 'https://the99eve.com') +DOMAIN = os.environ.get('AA_DOMAIN', 'https://yourdomain.com') EMAIL_HOST = os.environ.get('AA_EMAIL_HOST', 'smtp.gmail.com') EMAIL_PORT = int(os.environ.get('AA_EMAIL_PORT', '587')) EMAIL_HOST_USER = os.environ.get('AA_EMAIL_HOST_USER', '') @@ -170,54 +184,66 @@ EMAIL_USE_TLS = 'True' == os.environ.get('AA_EMAIL_USE_TLS', 'True') ######################### # Default Group Settings ######################### -# DEFAULT_ALLIANCE_GROUP - Default group alliance members are put in +# DEFAULT_AUTH_GROUP - Default group members are put in # DEFAULT_BLUE_GROUP - Default group for blue members ######################### -DEFAULT_ALLIANCE_GROUP = os.environ.get('AA_DEFAULT_ALLIANCE_GROUP', 'AllianceMember') -DEFAULT_BLUE_GROUP = os.environ.get('AA_DEFAULT_BLUE_GROUP', 'BlueMember') +DEFAULT_AUTH_GROUP = os.environ.get('AA_DEFAULT_ALLIANCE_GROUP', 'Member') +DEFAULT_BLUE_GROUP = os.environ.get('AA_DEFAULT_BLUE_GROUP', 'Blue') ######################### # Alliance Service Setup ######################### -# ENABLE_ALLIANCE_FORUM - Enable forum support in the auth for alliance members -# ENABLE_ALLIANCE_JABBER - Enable jabber support in the auth for alliance members -# ENABLE_ALLIANCE_MUMBLE - Enable mumble support in the auth for alliance members -# ENABLE_ALLIANCE_IPBOARD - Enable IPBoard forum support in the auth for alliance members +# ENABLE_AUTH_FORUM - Enable forum support in the auth for auth'd members +# ENABLE_AUTH_JABBER - Enable jabber support in the auth for auth'd members +# ENABLE_AUTH_MUMBLE - Enable mumble support in the auth for auth'd members +# ENABLE_AUTH_IPBOARD - Enable IPBoard forum support in the auth for auth'd members ######################### -ENABLE_ALLIANCE_FORUM = 'True' == os.environ.get('AA_ENABLE_ALLIANCE_FORUM', 'True') -ENABLE_ALLIANCE_JABBER = 'True' == os.environ.get('AA_ENABLE_ALLIANCE_JABBER', 'True') -ENABLE_ALLIANCE_MUMBLE = 'True' == os.environ.get('AA_ENABLE_ALLIANCE_MUMBLE', 'True') -ENABLE_ALLIANCE_IPBOARD = 'True' == os.environ.get('AA_ENABLE_ALLIANCE_IPBOARD', 'False') -ENABLE_ALLIANCE_TEAMSPEAK3 = 'True' == os.environ.get('AA_ENABLE_ALLIANCE_TEAMSPEAK3', 'False') +ENABLE_AUTH_FORUM = 'True' == os.environ.get('AA_ENABLE_AUTH_FORUM', 'True') +ENABLE_AUTH_JABBER = 'True' == os.environ.get('AA_ENABLE_AUTH_JABBER', 'True') +ENABLE_AUTH_MUMBLE = 'True' == os.environ.get('AA_ENABLE_AUTH_MUMBLE', 'True') +ENABLE_AUTH_IPBOARD = 'True' == os.environ.get('AA_ENABLE_AUTH_IPBOARD', 'False') +ENABLE_AUTH_TEAMSPEAK3 = 'True' == os.environ.get('AA_ENABLE_AUTH_TEAMSPEAK3', 'False') ##################### # Blue service Setup ##################### +# BLUE_STANDING - The default lowest standings setting to consider blue # ENABLE_BLUE_FORUM - Enable forum support in the auth for blues # ENABLE_BLUE_JABBER - Enable jabber support in the auth for blues # ENABLE_BLUE_MUMBLE - Enable mumble support in the auth for blues # ENABLE_BLUE_IPBOARD - Enable IPBoard forum support in the auth for blues ##################### +BLUE_STANDING = float(os.environ.get('AA_BLUE_STANDING', '5.0')) ENABLE_BLUE_FORUM = 'True' == os.environ.get('AA_ENABLE_BLUE_FORUM', 'False') ENABLE_BLUE_JABBER = 'True' == os.environ.get('AA_ENABLE_BLUE_JABBER', 'False') ENABLE_BLUE_MUMBLE = 'True' == os.environ.get('AA_ENABLE_BLUE_MUMBLE', 'True') ENABLE_BLUE_IPBOARD = 'True' == os.environ.get('AA_ENABLE_BLUE_IPBOARD', 'False') ENABLE_BLUE_TEAMSPEAK3 = 'True' == os.environ.get('AA_ENABLE_BLUE_TEAMSPEAK3', 'False') +######################### +# Corp Configuration +######################### +# If running in alliance mode, the following should be for the executor corp# +# CORP_ID - Set this to your corp ID (get this from https://zkillboard.com/corporation/#######) +# CORP_NAME - Set this to your Corporation Name +# CORP_API_ID - Set this to the api id for the corp API key +# CORP_API_VCODE - Set this to the api vcode for the corp API key +######################## +CORP_ID = os.environ.get('AA_CORP_ID', '') +CORP_NAME = os.environ.get('AA_CORP_NAME', '') +CORP_API_ID = os.environ.get('AA_CORP_API_ID', '') +CORP_API_VCODE = os.environ.get('AA_CORP_API_VCODE', '') + + ######################### # Alliance Configuration ######################### -# ALLIANCE_ID - Set this to your AllianceID +# ALLIANCE_ID - Set this to your Alliance ID (get this from https://zkillboard.com/alliance/#######) # ALLIANCE_NAME - Set this to your Alliance Name -# ALLIANCE_EXEC_CORP_ID - Set this to the api id for the exec corp -# ALLIANCE_EXEC_CORP_VCODE - Set this to the api vcode for the exe corp -# ALLIANCE_BLUE_STANDING - The default lowest standings setting to consider blue ######################## -ALLIANCE_ID = os.environ.get('AA_ALLIANCE_ID', '99001336') -ALLIANCE_NAME = os.environ.get('AA_ALLIANCE_NAME', 'Somealliance') -ALLIANCE_EXEC_CORP_ID = os.environ.get('AA_ALLIANCE_EXEC_CORP_ID', '') -ALLIANCE_EXEC_CORP_VCODE = os.environ.get('AA_ALLIANCE_EXEC_CORP_VCODE', '') -ALLIANCE_BLUE_STANDING = float(os.environ.get('AA_ALLIANCE_BLUE_STANDING', '5.0')) +ALLIANCE_ID = os.environ.get('AA_ALLIANCE_ID', '') +ALLIANCE_NAME = os.environ.get('AA_ALLIANCE_NAME', '') + ##################### # HR Configuration @@ -235,7 +261,7 @@ JACK_KNIFE_URL = os.environ.get('AA_JACK_KNIFE_URL', 'http://ridetheclown.com/ev # IPBOARD_APIKEY - Api key to interact with ipboard # IPBOARD_APIMODULE - Module for alliance auth *leave alone* ##################### -FORUM_URL = os.environ.get('AA_FORUM_URL', "http://someaddress.com") +FORUM_URL = os.environ.get('AA_FORUM_URL', "http://someurl.com") IPBOARD_ENDPOINT = os.environ.get('AA_IPBOARD_ENDPOINT', 'someaddress.com/interface/board/index.php') IPBOARD_APIKEY = os.environ.get('AA_IPBOARD_APIKEY', 'somekeyhere') IPBOARD_APIMODULE = 'aa' @@ -246,15 +272,16 @@ IPBOARD_APIMODULE = 'aa' # JABBER_URL - Jabber address url # JABBER_PORT - Jabber service portal # JABBER_SERVER - Jabber server url -# OPENFIRE_ADDRESS - Address of the openfire admin console -# OPENFIRE_SECRET_KEY - Openfire userservice secret key +# OPENFIRE_ADDRESS - Address of the openfire admin console including port +# Please use http with 9090 or https with 9091 +# OPENFIRE_SECRET_KEY - Openfire REST API secret key # BROADCAST_USER - Broadcast user JID # BROADCAST_USER_PASSWORD - Broadcast user password ###################### -JABBER_URL = os.environ.get('AA_JABBER_URL', "someaddress.com") +JABBER_URL = os.environ.get('AA_JABBER_URL', "someurl.com") JABBER_PORT = int(os.environ.get('AA_JABBER_PORT', '5223')) -JABBER_SERVER = os.environ.get('AA_JABBER_SERVER', "someadddress.com") -OPENFIRE_ADDRESS = os.environ.get('AA_OPENFIRE_ADDRESS', "http://someaddress.com:9090/") +JABBER_SERVER = os.environ.get('AA_JABBER_SERVER', "someurl.com") +OPENFIRE_ADDRESS = os.environ.get('AA_OPENFIRE_ADDRESS', "http://someurl.com:9090") OPENFIRE_SECRET_KEY = os.environ.get('AA_OPENFIRE_SECRET_KEY', "somekey") BROADCAST_USER = os.environ.get('AA_BROADCAST_USER', "broadcast@") + JABBER_URL BROADCAST_USER_PASSWORD = os.environ.get('AA_BROADCAST_USER_PASSWORD', "somepassword") diff --git a/celerytask/tasks.py b/celerytask/tasks.py index 50b3660c..edfb5449 100755 --- a/celerytask/tasks.py +++ b/celerytask/tasks.py @@ -13,7 +13,32 @@ from authentication.models import AuthServicesInfo from eveonline.managers import EveManager from services.managers.eve_api_manager import EveApiManager from util.common_task import deactivate_services +from util import add_member_permission +from util import remove_member_permission +from util import check_if_user_has_permission +from util.common_task import add_user_to_group +from util.common_task import remove_user_from_group +from util.common_task import generate_corp_group_name +from eveonline.models import EveCharacter +from eveonline.models import EveCorporationInfo +from authentication.managers import AuthServicesInfoManager +def generate_corp_group_name(corpname): + return 'Corp_' + corpname.replace(' ', '_') + +def disable_alliance_member(user, char_id): + remove_member_permission(user, 'member') + remove_user_from_group(user, settings.DEFAULT_AUTH_GROUP) + remove_user_from_group(user, + generate_corp_group_name( + EveManager.get_character_by_id(char_id).corporation_name)) + deactivate_services(user) + +def disable_blue_member(user): + remove_member_permission(user, 'blue_member') + remove_user_from_group(user, settings.DEFAULT_BLUE_GROUP) + deactivate_services(user) + AuthServicesInfoManager.update_is_blue(False, user) def update_jabber_groups(user): syncgroups = SyncGroupCache.objects.filter(user=user) @@ -188,6 +213,8 @@ def run_api_refresh(): print 'Running update on user: ' + user.username if authserviceinfo.main_char_id: if authserviceinfo.main_char_id != "": + #preserve old corp ID for corp change test on members + oldcorp_id = EveCharacter.objects.get(character_id=authserviceinfo.main_char_id).corporation_id for api_key_pair in api_key_pairs: 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): @@ -204,49 +231,110 @@ def run_api_refresh(): # Check our main character character = EveManager.get_character_by_id(authserviceinfo.main_char_id) corp = EveManager.get_corporation_info_by_id(character.corporation_id) + main_corp_id = EveManager.get_charater_corporation_id_by_id(authserviceinfo.main_char_id) main_alliance_id = EveManager.get_charater_alliance_id_by_id(authserviceinfo.main_char_id) - if main_alliance_id == settings.ALLIANCE_ID: - pass + if (settings.IS_CORP and main_corp_id == settings.CORP_ID) or (not settings.IS_CORP and main_alliance_id == settings.ALLIANCE_ID): + if not check_if_user_has_permission(user, "member"): + #transition from none or blue to member + if check_if_user_has_permission(user, "blue_member"): + #strip blue status + remove_member_permission(user, "blue_member") + remove_user_from_group(user, settings.DEFAULT_BLUE_GROUP) + AuthServicesInfoManager.update_is_blue(False, user) + #add to auth group + add_member_permission(user, "member") + add_user_to_group(user, settings.DEFAULT_AUTH_GROUP) + #add to required corp group + add_user_to_group(user, generate_corp_group_name(character.corporation_name)) + elif corp.corporation_id != oldcorp_id: + #changed corps, both corps auth'd, need to change group assignment + oldcorp = EveCorporationInfo.objects.get(corporation_id=oldcorp_id) + remove_user_from_group(user, generate_corp_group_name(oldcorp.corporation_name)) + add_user_to_group(user, generate_corp_group_name(character.corporation_name)) + #reset services to force new mumble names and group assignments + deactivate_services(user) 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"): + disable_alliance_member(user, authserviceinfo.main_char_id) + elif check_if_user_has_permission(user, "blue_member"): + disable_blue_member(user) + else: deactivate_services(user) + + else: + # disable accounts with invalid keys + if check_if_user_has_permission(user, "member"): + disable_alliance_member(user, authserviceinfo.main_char_id) + elif check_if_user_has_permission(user, "blue_member"): + disable_blue_member(user) else: deactivate_services(user) - else: - # nuke it - deactivate_services(user) + else: print 'No main_char_id set' # Run Every 2 hours @periodic_task(run_every=crontab(minute=0, hour="*/2")) -def run_alliance_corp_update(): +def run_corp_update(): # I am not proud of this block of code if EveApiManager.check_if_api_server_online(): - # Updated alliance info - alliance_info = EveApiManager.get_alliance_information(settings.ALLIANCE_ID) - - # Populate alliance info - if not EveManager.check_if_alliance_exists_by_id(settings.ALLIANCE_ID): - EveManager.create_alliance_info(settings.ALLIANCE_ID, alliance_info['name'], alliance_info['ticker'], - alliance_info['executor_id'], alliance_info['member_count'], False) - - alliance = EveManager.get_alliance_info_by_id(settings.ALLIANCE_ID) - - # Create the corps in the alliance - for alliance_corp in alliance_info['member_corps']: - corpinfo = EveApiManager.get_corporation_information(alliance_corp) + if settings.IS_CORP: + # Create the corp + corpinfo = EveApiManager.get_corporation_information(settings.CORP_ID) if not EveManager.check_if_corporation_exists_by_id(corpinfo['id']): EveManager.create_corporation_info(corpinfo['id'], corpinfo['name'], corpinfo['ticker'], - corpinfo['members']['current'], False, alliance) + corpinfo['members']['current'], False, None) + else: + # Updated alliance info + alliance_info = EveApiManager.get_alliance_information(settings.ALLIANCE_ID) + + # Populate alliance info + if not EveManager.check_if_alliance_exists_by_id(settings.ALLIANCE_ID): + EveManager.create_alliance_info(settings.ALLIANCE_ID, alliance_info['name'], alliance_info['ticker'], + alliance_info['executor_id'], alliance_info['member_count'], False) + alliance = EveManager.get_alliance_info_by_id(settings.ALLIANCE_ID) + # Create the corps in the alliance + for alliance_corp in alliance_info['member_corps']: + corpinfo = EveApiManager.get_corporation_information(alliance_corp) + if not EveManager.check_if_corporation_exists_by_id(corpinfo['id']): + EveManager.create_corporation_info(corpinfo['id'], corpinfo['name'], corpinfo['ticker'], + corpinfo['members']['current'], False, alliance) + + #determine what level of standings to check + #refer to https://github.com/eve-val/evelink/blob/master/evelink/parsing/contact_list.py#L43 + standing_level = 'alliance' + if settings.IS_CORP: + standing_level = 'corp' # Create the corps in the standings - alliance_standings = EveApiManager.get_alliance_standings() - if alliance_standings: - for standing_id in EveApiManager.get_alliance_standings()['alliance']: - if int(alliance_standings['alliance'][standing_id]['standing']) >= settings.ALLIANCE_BLUE_STANDING: + corp_standings = EveApiManager.get_corp_standings() + if corp_standings: + for standing_id in EveApiManager.get_corp_standings()[standing_level]: + if int(corp_standings[standing_level][standing_id]['standing']) >= settings.BLUE_STANDING: if EveApiManager.check_if_id_is_character(standing_id): pass elif EveApiManager.check_if_id_is_corp(standing_id): @@ -276,22 +364,16 @@ def run_alliance_corp_update(): # Update all allinace info's for all_alliance_info in EveManager.get_all_alliance_info(): all_alliance_api_info = EveApiManager.get_alliance_information(all_alliance_info.alliance_id) - if all_alliance_info.alliance_id == settings.ALLIANCE_ID: + if (not settings.IS_CORP and all_alliance_info.alliance_id == settings.ALLIANCE_ID): EveManager.update_alliance_info(all_alliance_api_info['id'], all_alliance_api_info['executor_id'], all_alliance_api_info['member_count'], False) - else: - if 'alliance' in alliance_standings: - if int(all_alliance_info.alliance_id) in alliance_standings['alliance']: - if int(alliance_standings['alliance'][int(all_alliance_info.alliance_id)][ - 'standing']) >= settings.ALLIANCE_BLUE_STANDING: - EveManager.update_alliance_info(all_alliance_api_info['id'], - all_alliance_api_info['executor_id'], - all_alliance_api_info['member_count'], True) - else: - EveManager.update_alliance_info(all_alliance_api_info['id'], - all_alliance_api_info['executor_id'], - all_alliance_api_info['member_count'], False) - + elif standing_level in corp_standings: + if int(all_alliance_info.alliance_id) in corp_standings[standing_level]: + if int(corp_standings[standing_level][int(all_alliance_info.alliance_id)][ + 'standing']) >= settings.BLUE_STANDING: + EveManager.update_alliance_info(all_alliance_api_info['id'], + all_alliance_api_info['executor_id'], + all_alliance_api_info['member_count'], True) else: EveManager.update_alliance_info(all_alliance_api_info['id'], all_alliance_api_info['executor_id'], @@ -300,6 +382,10 @@ def run_alliance_corp_update(): EveManager.update_alliance_info(all_alliance_api_info['id'], all_alliance_api_info['executor_id'], all_alliance_api_info['member_count'], False) + else: + EveManager.update_alliance_info(all_alliance_api_info['id'], + all_alliance_api_info['executor_id'], + all_alliance_api_info['member_count'], False) # Update corp infos for all_corp_info in EveManager.get_all_corporation_info(): @@ -310,46 +396,42 @@ def run_alliance_corp_update(): if alliance is not None and all_corp_info.alliance is not None: - if all_corp_info.alliance.alliance_id == settings.ALLIANCE_ID: + if (not settings.IS_CORP) and (all_corp_info.alliance.alliance_id == settings.ALLIANCE_ID): EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], alliance, False) - else: - if int(alliance.alliance_id) in alliance_standings['alliance']: - if int(alliance_standings['alliance'][int(alliance.alliance_id)][ - 'standing']) >= settings.ALLIANCE_BLUE_STANDING: - EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], alliance, - True) - else: - EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], alliance, - False) + elif int(alliance.alliance_id) in corp_standings[standing_level]: + if int(corp_standings[standing_level][int(alliance.alliance_id)][ + 'standing']) >= settings.BLUE_STANDING: + EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], alliance, + True) else: EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], alliance, False) + else: + EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], alliance, + False) else: - if int(all_corp_info.corporation_id) in alliance_standings['alliance']: - if int(alliance_standings['alliance'][int(all_corp_info.corporation_id)][ - 'standing']) >= settings.ALLIANCE_BLUE_STANDING: + if int(all_corp_info.corporation_id) in corp_standings[standing_level]: + if int(corp_standings[standing_level][int(all_corp_info.corporation_id)][ + 'standing']) >= settings.BLUE_STANDING: EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], None, True) else: EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], None, False) else: EveManager.update_corporation_info(corpinfo['id'], corpinfo['members']['current'], None, False) - # Nuke the none believers + # Remove irrelevent corp and alliance models # Check the corps for all_corp_info in EveManager.get_all_corporation_info(): - if all_corp_info.alliance is not None: - if all_corp_info.alliance.alliance_id is not None: - if all_corp_info.alliance.alliance_id != settings.ALLIANCE_ID: - if not all_corp_info.is_blue: - all_corp_info.delete() - else: + if (settings.IS_CORP and all_corp_info.corporation_id != settings.CORP_ID) or (not settings.IS_CORP and all_corp_info.alliance_id != settings.ALLIANCE_ID): if not all_corp_info.is_blue: all_corp_info.delete() # Check the alliances for all_alliance_info in EveManager.get_all_alliance_info(): - if all_alliance_info.alliance_id != settings.ALLIANCE_ID: + if (not settings.IS_CORP and all_alliance_info.alliance_id != settings.ALLIANCE_ID): if all_alliance_info.is_blue is not True: all_alliance_info.delete() + if all_alliance_info.is_blue is not True: + all_alliance_info.delete() diff --git a/eveonline/forms.py b/eveonline/forms.py index 44b1138e..a4a9a43d 100644 --- a/eveonline/forms.py +++ b/eveonline/forms.py @@ -7,7 +7,7 @@ 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", required=False) + is_blue = forms.BooleanField(label="Blue to corp/alliance", required=False) def clean(self): if EveManager.check_if_api_key_pair_exist(self.cleaned_data['api_id']): @@ -28,4 +28,4 @@ class UpdateKeyForm(forms.Form): self.cleaned_data['api_key']): raise forms.ValidationError(u'API supplied is not a full api key') - return self.cleaned_data \ No newline at end of file + return self.cleaned_data diff --git a/eveonline/managers.py b/eveonline/managers.py index 270ee7d5..b604b1c5 100644 --- a/eveonline/managers.py +++ b/eveonline/managers.py @@ -205,4 +205,9 @@ class EveManager: @staticmethod def get_all_alliance_info(): - return EveAllianceInfo.objects.all() \ No newline at end of file + return EveAllianceInfo.objects.all() + + @staticmethod + def get_charater_corporation_id_by_id(char_id): + if EveCharacter.objects.filter(character_id=char_id).exists(): + return EveCharacter.objects.get(character_id=char_id).corporation_id diff --git a/eveonline/views.py b/eveonline/views.py index 008c68dc..d5b4ab58 100755 --- a/eveonline/views.py +++ b/eveonline/views.py @@ -22,9 +22,9 @@ from eveonline.models import EveApiKeyPair from authentication.models import AuthServicesInfo -def disable_alliance_member(user, char_id): - remove_member_permission(user, 'alliance_member') - remove_user_from_group(user, settings.DEFAULT_ALLIANCE_GROUP) +def disable_member(user, char_id): + remove_member_permission(user, 'member') + remove_user_from_group(user, settings.DEFAULT_AUTH_GROUP) remove_user_from_group(user, generate_corp_group_name( EveManager.get_character_by_id(char_id).corporation_name)) @@ -80,7 +80,7 @@ def api_key_removal(request, api_id): if authinfo.is_blue: disable_blue_member(request.user) else: - disable_alliance_member(request.user, authinfo.main_char_id) + disable_member(request.user, authinfo.main_char_id) EveManager.delete_api_key_pair(api_id, request.user.id) EveManager.delete_characters_by_api_id(api_id, request.user.id) @@ -104,9 +104,9 @@ def main_character_change(request, char_id): 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) + if (settings.IS_CORP and EveManager.get_charater_corporation_id_by_id(char_id) == settings.CORP_ID) or (not settings.IS_CORP and EveManager.get_charater_alliance_id_by_id(char_id) == settings.ALLIANCE_ID): + add_member_permission(request.user, 'member') + add_user_to_group(request.user, settings.DEFAULT_AUTH_GROUP) add_user_to_group(request.user, generate_corp_group_name(EveManager.get_character_by_id(char_id).corporation_name)) @@ -116,15 +116,15 @@ def main_character_change(request, char_id): add_user_to_group(request.user, settings.DEFAULT_BLUE_GROUP) AuthServicesInfoManager.update_is_blue(True, request.user) else: - if check_if_user_has_permission(request.user, 'alliance_member'): - disable_alliance_member(request.user, previousmainid) + if check_if_user_has_permission(request.user, 'member'): + disable_member(request.user, previousmainid) if check_if_user_has_permission(request.user, 'blue_member'): disable_blue_member(request.user) else: # TODO: disable serivces - if check_if_user_has_permission(request.user, 'alliance_member'): - disable_alliance_member(request.user, previousmainid) + if check_if_user_has_permission(request.user, 'member'): + disable_member(request.user, previousmainid) if check_if_user_has_permission(request.user, 'blue_member'): disable_blue_member(request.user) diff --git a/groupmanagement/views.py b/groupmanagement/views.py index 473c1493..e817dbb6 100755 --- a/groupmanagement/views.py +++ b/groupmanagement/views.py @@ -96,7 +96,7 @@ def groups_view(request): # Check if group is a corp if "Corp_" in group.name: pass - elif settings.DEFAULT_ALLIANCE_GROUP in group.name: + elif settings.DEFAULT_AUTH_GROUP in group.name: pass elif settings.DEFAULT_BLUE_GROUP in group.name: pass @@ -146,4 +146,4 @@ def group_request_leave(request, group_id): grouprequest.leave_request = True grouprequest.save() - return HttpResponseRedirect("/groups") \ No newline at end of file + return HttpResponseRedirect("/groups") diff --git a/hrapplications/forms.py b/hrapplications/forms.py index 8fa9671a..7d1ad0e7 100755 --- a/hrapplications/forms.py +++ b/hrapplications/forms.py @@ -3,13 +3,17 @@ from django.conf import settings from eveonline.models import EveCorporationInfo - class HRApplicationForm(forms.Form): allchoices = [] - for corp in EveCorporationInfo.objects.all(): - if corp.alliance is not None: - if corp.alliance.alliance_id == settings.ALLIANCE_ID: - allchoices.append((str(corp.corporation_id), str(corp.corporation_name))) + + if settings.IS_CORP: + corp = EveCorporationInfo.objects.get(corporation_id=settings.CORP_ID) + allchoices.append((str(corp.corporation_id), str(corp.corporation_name))) + else: + for corp in EveCorporationInfo.objects.all(): + if corp.alliance is not None: + if corp.alliance.alliance_id == settings.ALLIANCE_ID: + allchoices.append((str(corp.corporation_id), str(corp.corporation_name))) character_name = forms.CharField(max_length=254, required=True, label="Main Character Name") full_api_id = forms.CharField(max_length=254, required=True, label="API ID") @@ -26,4 +30,4 @@ class HRApplicationCommentForm(forms.Form): class HRApplicationSearchForm(forms.Form): - search_string = forms.CharField(max_length=254, required=True, label="Search String") \ No newline at end of file + search_string = forms.CharField(max_length=254, required=True, label="Search String") diff --git a/hrapplications/models.py b/hrapplications/models.py index 68fd06b4..3e6bd0ed 100755 --- a/hrapplications/models.py +++ b/hrapplications/models.py @@ -1,8 +1,8 @@ from django.db import models from django.contrib.auth.models import User -from eveonline.models import EveCorporationInfo from eveonline.models import EveCharacter +from eveonline.models import EveCorporationInfo class HRApplication(models.Model): @@ -33,4 +33,4 @@ class HRApplicationComment(models.Model): commenter_character = models.ForeignKey(EveCharacter) def __str__(self): - return str(self.application.character_name) + " - Comment" \ No newline at end of file + return str(self.application.character_name) + " - Comment" diff --git a/hrapplications/views.py b/hrapplications/views.py index 02bfc0bb..4954b107 100755 --- a/hrapplications/views.py +++ b/hrapplications/views.py @@ -28,11 +28,11 @@ def hr_application_management_view(request): # Get the corp the member is in auth_info = AuthServicesInfo.objects.get(user=request.user) if auth_info.main_char_id != "": - main_alliance_id = EveManager.get_charater_alliance_id_by_id(auth_info.main_char_id) - if main_alliance_id == settings.ALLIANCE_ID: + main_corp_id = EveManager.get_charater_corporation_id_by_id(auth_info.main_char_id) + if main_corp_id == settings.CORP_ID: main_char = EveCharacter.objects.get(character_id=auth_info.main_char_id) corp = EveCorporationInfo.objects.get(corporation_id=main_char.corporation_id) - corp_applications = HRApplication.objects.filter(corp=corp).filter(approved_denied=None) + corp_applications = HRApplication.objects.filter(approved_denied=None) else: corp_applications = None diff --git a/run_alliance_corp_update.py b/run_alliance_corp_update.py index c41709f2..05b31ecc 100644 --- a/run_alliance_corp_update.py +++ b/run_alliance_corp_update.py @@ -1,6 +1,6 @@ from util import bootstrap_permissions -from celerytask.tasks import run_alliance_corp_update +from celerytask.tasks import run_corp_update bootstrap_permissions() -run_alliance_corp_update() +run_corp_update() quit() diff --git a/services/managers/eve_api_manager.py b/services/managers/eve_api_manager.py index 5a77aaec..bcba1e38 100644 --- a/services/managers/eve_api_manager.py +++ b/services/managers/eve_api_manager.py @@ -140,10 +140,10 @@ class EveApiManager(): return False @staticmethod - def get_alliance_standings(): - if settings.ALLIANCE_EXEC_CORP_ID != "": + def get_corp_standings(): + if settings.CORP_API_ID != "": try: - api = evelink.api.API(api_key=(settings.ALLIANCE_EXEC_CORP_ID, settings.ALLIANCE_EXEC_CORP_VCODE)) + api = evelink.api.API(api_key=(settings.CORP_API_ID, settings.CORP_API_VCODE)) corp = evelink.corp.Corp(api=api) corpinfo = corp.contacts() results = corpinfo[0] @@ -178,4 +178,4 @@ class EveApiManager(): except evelink.api.APIError as error: return False - return False \ No newline at end of file + return False diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index a8c2c65d..43632d65 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -127,7 +127,7 @@ class Teamspeak3Manager: server_groups = Teamspeak3Manager._group_list() - if not settings.DEFAULT_ALLIANCE_GROUP in server_groups: + if not settings.DEFAULT_AUTH_GROUP in server_groups: Teamspeak3Manager._create_group(settings.DEFAULT_ALLIANCE_GROUP) alliance_group_id = Teamspeak3Manager._group_id_by_name(settings.DEFAULT_ALLIANCE_GROUP) diff --git a/services/views.py b/services/views.py index a48fca9a..7b09d8c6 100755 --- a/services/views.py +++ b/services/views.py @@ -91,7 +91,7 @@ def services_view(request): def service_blue_alliance_test(user): - return check_if_user_has_permission(user, 'alliance_member') or check_if_user_has_permission(user, 'blue_member') + return check_if_user_has_permission(user, 'member') or check_if_user_has_permission(user, 'blue_member') @login_required diff --git a/srp/views.py b/srp/views.py index 61a160be..2ae7061e 100755 --- a/srp/views.py +++ b/srp/views.py @@ -18,7 +18,7 @@ from form import SrpFleetMainUpdateForm def srp_util_test(user): - return check_if_user_has_permission(user, 'alliance_member') or check_if_user_has_permission(user, 'blue_member') + return check_if_user_has_permission(user, 'member') or check_if_user_has_permission(user, 'blue_member') @login_required @@ -273,4 +273,4 @@ def srp_fleet_edit_view(request, fleet_id): render_items = {'form': form, "no_fleet_id": no_fleet_id} return render_to_response('registered/srpfleetupdate.html', render_items, - context_instance=RequestContext(request)) \ No newline at end of file + context_instance=RequestContext(request)) diff --git a/templates/public/base.html b/templates/public/base.html index 55a6fc3c..5e71db27 100755 --- a/templates/public/base.html +++ b/templates/public/base.html @@ -36,7 +36,7 @@
@@ -76,7 +76,7 @@ class="fa fa-users fa-fw grayiconecolor"> Characters - {% if perms.auth.alliance_member %} + {% if perms.auth.member %}- NOTE: If you are part of the alliance do not check "Blue" this is for people who are blue to the - alliance - but are not in it. Blue access is limited. -
+ {% if IS_CORP %} ++ NOTE: If you are part of the corp do not check "Blue", this is for people who are blue to the + corp + but are not in it. Blue access is limited. +
+ {% else %} ++ NOTE: If you are part of the alliance do not check "Blue", this is for people who are blue to the + alliance + but are not in it. Blue access is limited. +
+ {% endif %}Do not change the accessmask or deselect options or it will not work
diff --git a/templates/registered/corpstats.html b/templates/registered/corpstats.html index 65a7f037..050dc2ee 100755 --- a/templates/registered/corpstats.html +++ b/templates/registered/corpstats.html @@ -6,7 +6,7 @@Not part of the alliance
+ {% if IS_CORP %} +Not part of the alliance
+ {% if IS_CORP %} +Not part of the corporation.
+ {% else %} +Not part of the alliance.
+ {% endif %} {% endif %} {% endblock content %} diff --git a/templates/registered/fleetfits.html b/templates/registered/fleetfits.html new file mode 100644 index 00000000..47b59748 --- /dev/null +++ b/templates/registered/fleetfits.html @@ -0,0 +1,19 @@ +{% extends "public/base.html" %} +{% load bootstrap %} +{% load staticfiles %} + +{% block title %}Alliance Auth{% endblock %} + +{% block page_title %}Alliance Fleet Doctrines{% endblock page_title %} +{% block extra_css %}{% endblock extra_css %} + +{% block content %} + +Main bash/defense doctrine (SHIELD)GroupID | @@ -52,7 +52,11 @@ {% endfor %}
---|
Service | @@ -162,7 +162,7 @@Domain | Action |
---|---|---|
Forums | {{ authinfo.forum_username }} | @@ -187,7 +187,7 @@IPBoard Forums | {{ authinfo.ipboard_username }} | {{ authinfo.ipboard_password }} | @@ -210,7 +210,7 @@ {% endifequal %} {% endif %} - {% if ENABLE_ALLIANCE_JABBER %} + {% if ENABLE_AUTH_JABBER %}
Jabber | {{ authinfo.jabber_username }} | @@ -235,7 +235,7 @@|
Mumble | {{ authinfo.mumble_username }} | @@ -260,7 +260,7 @@|
Service | Unique ID | @@ -300,7 +300,11 @@ {% endif %}