mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-07 07:36:20 +01:00
Added syncgroup logic to celery tasks.
Wrote request handles for enabling and disabling discord user.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user