mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 12:30:15 +02:00
Alter user field to OneToOneField Migration to enforce uniqueness pre-change Migration to ensure all users have an AuthServicesInfo Receiver to automatically create one upon user creation Replace AuthServicesInfo.get_or_create with get Prevent deletion of AuthServicesInfo from admin site Remove add and delete permissions from model. Get character names in chunks on corpstats update to prevent HTTP400 when requesting >350(ish) names Include corpstats docs. Update settings docs.
154 lines
5.1 KiB
Python
154 lines
5.1 KiB
Python
from __future__ import unicode_literals
|
|
|
|
from django.contrib import admin
|
|
|
|
from authentication.models import AuthServicesInfo
|
|
from eveonline.models import EveCharacter
|
|
from services.tasks import update_jabber_groups
|
|
from services.tasks import update_mumble_groups
|
|
from services.tasks import update_forum_groups
|
|
from services.tasks import update_ipboard_groups
|
|
from services.tasks import update_smf_groups
|
|
from services.tasks import update_teamspeak3_groups
|
|
from services.tasks import update_discord_groups
|
|
from services.tasks import update_discord_nickname
|
|
from services.tasks import update_discourse_groups
|
|
|
|
|
|
@admin.register(AuthServicesInfo)
|
|
class AuthServicesInfoManager(admin.ModelAdmin):
|
|
@staticmethod
|
|
def main_character(obj):
|
|
if obj.main_char_id:
|
|
try:
|
|
return EveCharacter.objects.get(character_id=obj.main_char_id)
|
|
except EveCharacter.DoesNotExist:
|
|
pass
|
|
return None
|
|
|
|
@staticmethod
|
|
def has_delete_permission(request, obj=None):
|
|
return False
|
|
|
|
@staticmethod
|
|
def has_add_permission(request, obj=None):
|
|
return False
|
|
|
|
def sync_jabber(self, request, queryset):
|
|
count = 0
|
|
for a in queryset: # queryset filtering doesn't work here?
|
|
if a.jabber_username != "":
|
|
update_jabber_groups.delay(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s jabber accounts queued for group sync." % count)
|
|
|
|
sync_jabber.short_description = "Sync groups for selected jabber accounts"
|
|
|
|
def sync_mumble(self, request, queryset):
|
|
count = 0
|
|
for a in queryset:
|
|
if a.mumble_username != "":
|
|
update_mumble_groups.delay(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s mumble accounts queued for group sync." % count)
|
|
|
|
sync_mumble.short_description = "Sync groups for selected mumble accounts"
|
|
|
|
def sync_forum(self, request, queryset):
|
|
count = 0
|
|
for a in queryset:
|
|
if a.forum_username != "":
|
|
update_forum_groups.delay(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s forum accounts queued for group sync." % count)
|
|
|
|
sync_forum.short_description = "Sync groups for selected forum accounts"
|
|
|
|
def sync_ipboard(self, request, queryset):
|
|
count = 0
|
|
for a in queryset:
|
|
if a.ipboard_username != "":
|
|
update_ipboard_groups.delay(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s ipboard accounts queued for group sync." % count)
|
|
|
|
sync_ipboard.short_description = "Sync groups for selected ipboard accounts"
|
|
|
|
def sync_smf(self, request, queryset):
|
|
count = 0
|
|
for a in queryset:
|
|
if a.smf_username != "":
|
|
update_smf_groups.delay(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s smf accounts queued for group sync." % count)
|
|
|
|
sync_smf.short_description = "Sync groups for selected smf accounts"
|
|
|
|
def sync_teamspeak(self, request, queryset):
|
|
count = 0
|
|
for a in queryset:
|
|
if a.teamspeak3_uid != "":
|
|
update_teamspeak3_groups.delay(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s teamspeak accounts queued for group sync." % count)
|
|
|
|
sync_teamspeak.short_description = "Sync groups for selected teamspeak accounts"
|
|
|
|
def sync_discord(self, request, queryset):
|
|
count = 0
|
|
for a in queryset:
|
|
if a.discord_uid != "":
|
|
update_discord_groups.delay(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s discord accounts queued for group sync." % count)
|
|
|
|
sync_discord.short_description = "Sync groups for selected discord accounts"
|
|
|
|
def sync_discourse(self, request, queryset):
|
|
count = 0
|
|
for a in queryset:
|
|
if a.discourse_enabled:
|
|
update_discourse_groups.delay(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s discourse accounts queued for group sync." % count)
|
|
|
|
sync_discourse.short_description = "Sync groups for selected discourse accounts"
|
|
|
|
def sync_nicknames(self, request, queryset):
|
|
count = 0
|
|
for a in queryset:
|
|
if a.discord_uid != "":
|
|
update_discord_nickname(a.user.pk)
|
|
count += 1
|
|
self.message_user(request, "%s discord accounts queued for nickname sync." % count)
|
|
|
|
sync_nicknames.short_description = "Sync nicknames for selected discord accounts"
|
|
|
|
actions = [
|
|
'sync_jabber',
|
|
'sync_mumble',
|
|
'sync_forum',
|
|
'sync_ipboard',
|
|
'sync_smf',
|
|
'sync_teamspeak',
|
|
'sync_discord',
|
|
'sync_discourse',
|
|
'sync_nicknames',
|
|
]
|
|
|
|
search_fields = [
|
|
'user__username',
|
|
'ipboard_username',
|
|
'xenforo_username',
|
|
'forum_username',
|
|
'jabber_username',
|
|
'mumble_username',
|
|
'teamspeak3_uid',
|
|
'discord_uid',
|
|
'ips4_username',
|
|
'smf_username',
|
|
'market_username',
|
|
'main_char_id',
|
|
]
|
|
list_display = ('user', 'main_character')
|