diff --git a/alliance_auth/settings.py.example b/alliance_auth/settings.py.example index fec7351c..26fcd0b5 100755 --- a/alliance_auth/settings.py.example +++ b/alliance_auth/settings.py.example @@ -161,7 +161,7 @@ STATIC_URL = '/static/' # Set to FALSE for alliance # Set to TRUE for corp ########################### -IS_CORP = 'False' == os.environ.get('AA_IS_CORP', 'True') +IS_CORP = 'True' == os.environ.get('AA_IS_CORP', 'True') ################# diff --git a/celerytask/tasks.py b/celerytask/tasks.py index c835950b..45f758e9 100755 --- a/celerytask/tasks.py +++ b/celerytask/tasks.py @@ -211,7 +211,9 @@ def run_api_refresh(): 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 + 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: 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): @@ -227,59 +229,66 @@ def run_api_refresh(): if valid_key: # 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 (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 character is not None and EveManager.check_if_corporation_exists_by_id(character.corporation_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 (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"): - #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"): @@ -313,7 +322,7 @@ def run_corp_update(): 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) + 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) @@ -419,7 +428,7 @@ def run_corp_update(): # Remove irrelevent corp and alliance models # Check the corps for all_corp_info in EveManager.get_all_corporation_info(): - 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 (settings.IS_CORP and all_corp_info.corporation_id != settings.CORP_ID) or (not settings.IS_CORP and all_corp_info.alliance.alliance_id != settings.ALLIANCE_ID): if not all_corp_info.is_blue: all_corp_info.delete() @@ -428,7 +437,3 @@ def run_corp_update(): 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/groupmanagement/admin.py b/groupmanagement/admin.py index 59a1e5c4..c89f1c75 100644 --- a/groupmanagement/admin.py +++ b/groupmanagement/admin.py @@ -2,7 +2,9 @@ from django.contrib import admin from models import GroupDescription from models import GroupRequest +from models import HiddenGroup admin.site.register(GroupDescription) admin.site.register(GroupRequest) +admin.site.register(HiddenGroup) diff --git a/groupmanagement/models.py b/groupmanagement/models.py index 895728d6..d6ca4ffe 100644 --- a/groupmanagement/models.py +++ b/groupmanagement/models.py @@ -21,4 +21,10 @@ class GroupRequest(models.Model): main_char = models.ForeignKey(EveCharacter) def __str__(self): - return self.user.username + ":" + self.group.name \ No newline at end of file + return self.user.username + ":" + self.group.name + +class HiddenGroup(models.Model): + group = models.ForeignKey(Group, unique=True) + + def __str__(self): + return self.group.name + " - Hidden" diff --git a/groupmanagement/views.py b/groupmanagement/views.py index e817dbb6..44042e5f 100755 --- a/groupmanagement/views.py +++ b/groupmanagement/views.py @@ -8,6 +8,7 @@ from django.contrib.auth.models import Group from models import GroupDescription from models import GroupRequest +from models import HiddenGroup from authentication.managers import AuthServicesInfoManager from eveonline.managers import EveManager @@ -100,6 +101,8 @@ def groups_view(request): pass elif settings.DEFAULT_BLUE_GROUP in group.name: pass + elif HiddenGroup.objects.filter(group=group).exists(): + pass else: # Get the descriptionn groupDesc = GroupDescription.objects.filter(group=group) diff --git a/registration/forms.py b/registration/forms.py index 11d66f51..9a6b8324 100644 --- a/registration/forms.py +++ b/registration/forms.py @@ -3,7 +3,7 @@ from django.contrib.auth.models import User class RegistrationForm(forms.Form): - username = forms.CharField(max_length=32, required=True) + username = forms.CharField(max_length=30, required=True) password = forms.CharField(widget=forms.PasswordInput(), required=True) password_again = forms.CharField(widget=forms.PasswordInput(), required=True, label="Password Again") email = forms.CharField(max_length=254, required=True) @@ -28,4 +28,4 @@ class RegistrationForm(forms.Form): if self.cleaned_data['email'] != self.cleaned_data['email_again']: raise forms.ValidationError(u'Emails do not match') - return self.cleaned_data \ No newline at end of file + return self.cleaned_data diff --git a/services/managers/phpbb3_manager.py b/services/managers/phpbb3_manager.py index ce9dc62f..26ffea4d 100755 --- a/services/managers/phpbb3_manager.py +++ b/services/managers/phpbb3_manager.py @@ -32,9 +32,18 @@ class Phpbb3Manager: SQL_GET_USER_GROUPS = r"SELECT phpbb_groups.group_name FROM phpbb_groups , phpbb_user_group WHERE " \ r"phpbb_user_group.group_id = phpbb_groups.group_id AND user_id=%s" + SQL_ADD_USER_AVATAR = r"UPDATE phpbb_users SET user_avatar_type=2, user_avatar_width=64, user_avatar_height=64, user_avatar=%s WHERE user_id = %s" + def __init__(self): pass + @staticmethod + def __add_avatar(username, characterid): + avatar_url = "http://image.eveonline.com/Character/" + characterid + "_64.jpg" + cursor = connections['phpbb3'].cursor() + userid = Phpbb3Manager.__get_user_id(username) + cursor.execute(Phpbb3Manager.SQL_ADD_USER_AVATAR, [avatar_url, userid]) + @staticmethod def __generate_random_pass(): return os.urandom(8).encode('hex') @@ -113,7 +122,7 @@ class Phpbb3Manager: pass @staticmethod - def add_user(username, email, groups): + def add_user(username, email, groups, characterid): cursor = connections['phpbb3'].cursor() username_clean = Phpbb3Manager.__santatize_username(username) @@ -130,6 +139,7 @@ class Phpbb3Manager: email, 2, Phpbb3Manager.__get_current_utc_date(), "", ""]) Phpbb3Manager.update_groups(username_clean, groups) + Phpbb3Manager.__add_avatar(username_clean, characterid) except: pass @@ -203,12 +213,13 @@ class Phpbb3Manager: return False @staticmethod - def update_user_password(username): + def update_user_password(username, characterid): cursor = connections['phpbb3'].cursor() password = Phpbb3Manager.__generate_random_pass() if Phpbb3Manager.check_user(username): pwhash = Phpbb3Manager.__gen_hash(password) cursor.execute(Phpbb3Manager.SQL_UPDATE_USER_PASSWORD, [pwhash, username]) + Phpbb3Manager.__add_avatar(username, characterid) return password return "" @@ -219,4 +230,4 @@ class Phpbb3Manager: try: cursor.execute(Phpbb3Manager.SQL_DIS_USER, [email, password, username]) except: - pass \ No newline at end of file + pass diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 4c50dab1..291b58a1 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -115,19 +115,22 @@ class Teamspeak3Manager: @staticmethod def _sync_ts_group_db(): - remote_groups = Teamspeak3Manager._group_list() - local_groups = TSgroup.objects.all() - for key in remote_groups: - remote_groups[key] = int(remote_groups[key]) + try: + remote_groups = Teamspeak3Manager._group_list() + local_groups = TSgroup.objects.all() + for key in remote_groups: + remote_groups[key] = int(remote_groups[key]) - for group in local_groups: - if group.ts_group_id not in remote_groups.values(): - TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() - for key in remote_groups: - g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) - q = TSgroup.objects.filter(ts_group_id=g.ts_group_id) - if not q: - g.save() + for group in local_groups: + if group.ts_group_id not in remote_groups.values(): + TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() + for key in remote_groups: + g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) + q = TSgroup.objects.filter(ts_group_id=g.ts_group_id) + if not q: + g.save() + except: + pass @staticmethod def add_user(username, corp_ticker): @@ -139,9 +142,9 @@ class Teamspeak3Manager: server_groups = Teamspeak3Manager._group_list() if not settings.DEFAULT_AUTH_GROUP in server_groups: - Teamspeak3Manager._create_group(settings.DEFAULT_ALLIANCE_GROUP) + Teamspeak3Manager._create_group(settings.DEFAULT_AUTH_GROUP) - alliance_group_id = Teamspeak3Manager._group_id_by_name(settings.DEFAULT_ALLIANCE_GROUP) + alliance_group_id = Teamspeak3Manager._group_id_by_name(settings.DEFAULT_AUTH_GROUP) ret = server.send_command('tokenadd', {'tokentype': 0, 'tokenid1': alliance_group_id, 'tokenid2': 0, 'tokendescription': username_clean, diff --git a/services/managers/util/ts3.py b/services/managers/util/ts3.py index f13a04ba..1122737b 100755 --- a/services/managers/util/ts3.py +++ b/services/managers/util/ts3.py @@ -139,11 +139,12 @@ class TS3Proto(): v = [v[0], '='.join(v[1:])] key, value = v keys[key] = self._unescape_str(value) - elif v[0][0] and v[0][0] == '-': - # Option - opts.append(v[0][1:]) - else: - command = v[0] + elif (not v == ['']): + if v[0][0] and v[0][0] == '-': + # Option + opts.append(v[0][1:]) + else: + command = v[0] d = {'keys': keys, 'opts': opts} if command: @@ -241,4 +242,4 @@ class TS3Server(TS3Proto): @type id: int """ if self._connected and id > 0: - self.send_command('use', keys={'sid': id}) \ No newline at end of file + self.send_command('use', keys={'sid': id}) diff --git a/services/views.py b/services/views.py index 7b09d8c6..f0ba185b 100755 --- a/services/views.py +++ b/services/views.py @@ -100,7 +100,7 @@ def activate_forum(request): authinfo = AuthServicesInfoManager.get_auth_service_info(request.user) # Valid now we get the main characters character = EveManager.get_character_by_id(authinfo.main_char_id) - result = Phpbb3Manager.add_user(character.character_name, request.user.email, ['REGISTERED']) + result = Phpbb3Manager.add_user(character.character_name, request.user.email, ['REGISTERED'], authinfo.main_char_id) # if empty we failed if result[0] != "": AuthServicesInfoManager.update_user_forum_info(result[0], result[1], request.user) @@ -126,7 +126,7 @@ def deactivate_forum(request): @user_passes_test(service_blue_alliance_test) def reset_forum_password(request): authinfo = AuthServicesInfoManager.get_auth_service_info(request.user) - result = Phpbb3Manager.update_user_password(authinfo.forum_username) + result = Phpbb3Manager.update_user_password(authinfo.forum_username, authinfo.main_char_id) # false we failed if result != "": AuthServicesInfoManager.update_user_forum_info(authinfo.forum_username, result, request.user) diff --git a/static/img/index_images/Thumbs.db b/static/img/index_images/Thumbs.db deleted file mode 100644 index 748e9555..00000000 Binary files a/static/img/index_images/Thumbs.db and /dev/null differ diff --git a/templates/public/base.html b/templates/public/base.html index cc582d80..d2153f1e 100755 --- a/templates/public/base.html +++ b/templates/public/base.html @@ -37,9 +37,9 @@
{% if IS_CORP %} - {{ CORP_NAME }} + {{ CORP_NAME }} {% else %} - {{ ALLIANCE_NAME }} + {{ ALLIANCE_NAME }} {% endif %}
@@ -102,7 +102,7 @@
  • Services + class="fa fa-cogs fa-fw grayiconecolor"> Services
  • {% endif %} diff --git a/templates/public/index.html b/templates/public/index.html index 98ea531a..03341626 100644 --- a/templates/public/index.html +++ b/templates/public/index.html @@ -1,7 +1,7 @@ {% load staticfiles %} - The 99 Percent Eve Alliance + My Corp and/or Alliance Name +

    @@ -44,12 +58,6 @@

    - -

    - - - -

    - \ No newline at end of file + diff --git a/templates/public/login.html b/templates/public/login.html index c6e05a8f..28eef237 100644 --- a/templates/public/login.html +++ b/templates/public/login.html @@ -23,7 +23,10 @@