Added syncgroup logic to celery tasks.

Wrote request handles for enabling and disabling discord user.
This commit is contained in:
Adarnof
2015-11-30 22:08:17 +00:00
parent 765fcb52de
commit 34a27ba885
4 changed files with 55 additions and 4 deletions

View File

@@ -237,18 +237,17 @@ class DiscordManager:
group_ids = []
for g in groups:
try:
group_id = DiscordAPIManager.get_group_id(settings.DISCORD_SERVER_ID, g.name)
group_id = DiscordAPIManager.get_group_id(settings.DISCORD_SERVER_ID, g)
group_ids.append(group_id)
except:
# need to create role on server for group
group_ids.append(DiscordManager.create_group(g.name))
group_ids.append(DiscordManager.create_group(g))
DiscordAPIManager.set_roles(settings.DISCORD_SERVER_ID, user_id, group_ids)
@staticmethod
def create_group(groupname):
safe_groupname = DiscordManager.__sanatize_username(groupname)
new_group = DiscordAPIManager.generate_role(settings.DISCORD_SERVER_ID)
named_group = DiscordAPIManager.edit_role(settings.DISCORD_SERVER_ID, new_group['id'], safe_groupname)
named_group = DiscordAPIManager.edit_role(settings.DISCORD_SERVER_ID, new_group['id'], groupname)
return named_group['id']
@staticmethod

View File

@@ -12,6 +12,7 @@ from managers.phpbb3_manager import Phpbb3Manager
from managers.mumble_manager import MumbleManager
from managers.ipboard_manager import IPBoardManager
from managers.teamspeak3_manager import Teamspeak3Manager
from managers.discord_manager import DiscordManager
from authentication.managers import AuthServicesInfoManager
from eveonline.managers import EveManager
from celerytask.tasks import remove_all_syncgroups_for_service
@@ -317,3 +318,29 @@ def fleet_fits(request):
context = {}
return render_to_response('registered/fleetfits.html', context,
context_instance=RequestContext(request))
@login_required
@user_passes_test(service_blue_alliance_test)
def activate_discord(request):
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
character = EveManager.get_character_by_id(authinfo.main_char_id)
info = DiscordManager.add_user(character.character_name)
# If our username is blank means we already had a user
if info[0] is not "":
AuthServicesInfoManager.update_user_discord_info(info[0], info[1], request.user)
update_discord_groups(request.user)
return HttpResponseRedirect("/services/")
return HttpResponseRedirect("/dashboard")
@login_required
@user_passes_test(service_blue_alliance_test)
def deactivate_discord(request):
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
result = DiscordManager.delete_user(authinfo.jabber_username)
remove_all_syncgroups_for_service(request.user, "discord")
# If our username is blank means we failed
if result:
AuthServicesInfoManager.update_user_discord_info("", "", request.user)
return HttpResponseRedirect("/services/")
return HttpResponseRedirect("/dashboard")