mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 20:40:17 +02:00
- `get_main_character_from_user` to return the `EveCharacter` object - `get_main_character_name_from_user` to return the main character name as string
65 lines
1.1 KiB
Python
65 lines
1.1 KiB
Python
"""
|
|
Alliance Auth User API
|
|
"""
|
|
|
|
from typing import Optional
|
|
|
|
from django.contrib.auth.models import User
|
|
|
|
from allianceauth.eveonline.models import EveCharacter
|
|
|
|
|
|
def get_sentinel_user() -> User:
|
|
"""
|
|
Get the sentinel user or create one
|
|
|
|
:return:
|
|
"""
|
|
|
|
return User.objects.get_or_create(username="deleted")[0]
|
|
|
|
def get_main_character_from_user(user: User) -> Optional[EveCharacter]:
|
|
"""
|
|
Get the main character from a user
|
|
|
|
:param user:
|
|
:type user:
|
|
:return:
|
|
:rtype:
|
|
"""
|
|
|
|
if user is None:
|
|
return None
|
|
|
|
try:
|
|
main_character = user.profile.main_character
|
|
except AttributeError:
|
|
return None
|
|
|
|
return main_character
|
|
|
|
|
|
def get_main_character_name_from_user(user: User) -> str:
|
|
"""
|
|
Get the main character name from a user
|
|
|
|
:param user:
|
|
:type user:
|
|
:return:
|
|
:rtype:
|
|
"""
|
|
|
|
if user is None:
|
|
sentinel_user = get_sentinel_user()
|
|
|
|
return sentinel_user.username
|
|
|
|
main_character = get_main_character_from_user(user=user)
|
|
|
|
try:
|
|
username = main_character.character_name
|
|
except AttributeError:
|
|
return str(user)
|
|
|
|
return username
|