Compare commits

..

1 Commits

Author SHA1 Message Date
John Turner
7c0a0c6aeb Merge branch 'master' into 'master'
Added a link/button on the TS page that will show/hide instructions if the...

See merge request allianceauth/allianceauth!1618
2025-05-12 03:46:10 +00:00
15 changed files with 125 additions and 262 deletions

View File

@ -1,15 +1,15 @@
# Alliance Auth
[![License](https://img.shields.io/badge/license-GPLv2-green)](https://pypi.org/project/allianceauth/)
[![Python Versions](https://img.shields.io/pypi/pyversions/allianceauth)](https://pypi.org/project/allianceauth/)
[![Django Versions](https://img.shields.io/pypi/djversions/allianceauth?label=django)](https://pypi.org/project/allianceauth/)
[![Stable AA Version](https://img.shields.io/pypi/v/allianceauth?label=release)](https://pypi.org/project/allianceauth/)
[![Pipeline Status](https://gitlab.com/allianceauth/allianceauth/badges/master/pipeline.svg)](https://gitlab.com/allianceauth/allianceauth/commits/master)
[![license](https://img.shields.io/badge/license-GPLv2-green)](https://pypi.org/project/allianceauth/)
[![python](https://img.shields.io/pypi/pyversions/allianceauth)](https://pypi.org/project/allianceauth/)
[![django](https://img.shields.io/pypi/djversions/allianceauth?label=django)](https://pypi.org/project/allianceauth/)
[![version](https://img.shields.io/pypi/v/allianceauth?label=release)](https://pypi.org/project/allianceauth/)
[![pipeline status](https://gitlab.com/allianceauth/allianceauth/badges/master/pipeline.svg)](https://gitlab.com/allianceauth/allianceauth/commits/master)
[![Documentation Status](https://readthedocs.org/projects/allianceauth/badge/?version=latest)](https://allianceauth.readthedocs.io/?badge=latest)
[![Test Coverage Report](https://gitlab.com/allianceauth/allianceauth/badges/master/coverage.svg)](https://gitlab.com/allianceauth/allianceauth/commits/master)
[![coverage report](https://gitlab.com/allianceauth/allianceauth/badges/master/coverage.svg)](https://gitlab.com/allianceauth/allianceauth/commits/master)
[![Chat on Discord](https://img.shields.io/discord/399006117012832262.svg)](https://discord.gg/fjnHAmk)
A flexible authentication platform for EVE Online to help in-game organizations manage access to applications and services. AA provides both, a stable core, and a robust framework for community development and custom applications.
An auth system for EVE Online to help in-game organizations manage online service access.
## Content
@ -22,17 +22,17 @@ A flexible authentication platform for EVE Online to help in-game organizations
## Overview
Alliance Auth (AA) is a platform that helps Eve Online organizations efficiently manage access to applications and services.
Alliance Auth (AA) is a web site that helps Eve Online organizations efficiently manage access to applications and services.
Main features:
- Automatically grants or revokes user access to external services (e.g.: Discord, Mumble) based on the user's current membership to [a variety of EVE Online affiliation](https://allianceauth.readthedocs.io/en/latest/features/core/states/) and [groups](https://allianceauth.readthedocs.io/en/latest/features/core/groups/)
- Automatically grants or revokes user access to external services (e.g. Discord, Mumble) and web apps (e.g. SRP requests) based on the user's current membership to [in-game organizations](https://allianceauth.readthedocs.io/en/latest/features/core/states/) and [groups](https://allianceauth.readthedocs.io/en/latest/features/core/groups/)
- Provides a central web site where users can directly access web apps (e.g. SRP requests, Fleet Schedule) and manage their access to external services and groups.
- Includes a set of connectors (called ["Services"](https://allianceauth.readthedocs.io/en/latest/features/services/)) for integrating access management with many popular external applications / services like Discord, Mumble, Teamspeak 3, SMF and others
- Includes a set of connectors (called ["services"](https://allianceauth.readthedocs.io/en/latest/features/services/)) for integrating access management with many popular external applications / services like Discord, Mumble, Teamspeak 3, SMF and others
- Includes a set of web [Apps](https://allianceauth.readthedocs.io/en/latest/features/apps/) which add many useful functions, e.g.: fleet schedule, timer board, SRP request management, fleet activity tracker
- Includes a set of web [apps](https://allianceauth.readthedocs.io/en/latest/features/apps/) which add many useful functions, e.g.: fleet schedule, timer board, SRP request management, fleet activity tracker
- Can be easily extended with additional services and apps. Many are provided by the community and can be found here: [Community Creations](https://gitlab.com/allianceauth/community-creations)
@ -42,15 +42,9 @@ For further details about AA - including an installation guide and a full list o
## Screenshot
Here is an example of the Alliance Auth web site with a mixture of Services, Apps and Community Creations enabled:
Here is an example of the Alliance Auth web site with some plug-ins apps and services enabled:
### Flatly Theme
![Flatly Theme](docs/_static/images/promotion/SampleInstallation-Flatly.png)
### Darkly Theme
![Darkly Theme](docs/_static/images/promotion/SampleInstallation-Darkly.png)
![screenshot](https://i.imgur.com/2tnX9kD.png)
## Support

View File

@ -5,7 +5,7 @@ manage online service access.
# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
__version__ = '4.7.0'
__version__ = '4.6.4'
__title__ = 'Alliance Auth'
__url__ = 'https://gitlab.com/allianceauth/allianceauth'
NAME = f'{__title__} v{__version__}'

View File

@ -39,13 +39,13 @@ class AutogroupsConfigManager(models.Manager):
"""
if state is None:
state = user.profile.state
for config in self.filter(states=state):
# grant user new groups for their state
config.update_group_membership_for_user(user)
for config in self.exclude(states=state):
# ensure user does not have groups from previous state
config.remove_user_from_alliance_groups(user)
config.remove_user_from_corp_groups(user)
for config in self.filter(states=state):
# grant user new groups for their state
config.update_group_membership_for_user(user)
class AutogroupsConfig(models.Model):

View File

@ -1,4 +1,3 @@
from allianceauth.eveonline.models import EveCorporationInfo
from django.test import TestCase
from allianceauth.tests.auth_utils import AuthUtils
@ -74,51 +73,3 @@ class AutogroupsConfigManagerTestCase(TestCase):
AutogroupsConfig.objects.update_groups_for_user(member)
self.assertTrue(update_groups.called)
def test_update_group_membership_corp_in_two_configs(self):
# given
member = AuthUtils.create_member('test member')
AuthUtils.add_main_character_2(
member,
character_id='1234',
name='test character',
corp_id='2345',
corp_name='corp name',
corp_ticker='TIKK',
)
corp = EveCorporationInfo.objects.create(
corporation_id='2345',
corporation_name='corp name',
corporation_ticker='TIKK',
member_count=10,
)
member_state = AuthUtils.get_member_state()
member_config = AutogroupsConfig.objects.create(corp_groups=True)
member_config.states.add(member_state)
blue_state = AuthUtils.get_blue_state()
blue_state.member_corporations.add(corp)
blue_config = AutogroupsConfig.objects.create(corp_groups=True)
blue_config.states.add(blue_state)
member.profile.state = blue_state
member.profile.save()
AutogroupsConfig.objects.update_groups_for_user(member)
# Checks before test that the role is correctly applied
group = blue_config.get_corp_group(corp)
self.assertIn(group, member.groups.all())
# when
blue_state.member_corporations.remove(corp)
member_state.member_corporations.add(corp)
member.profile.state = member_state
member.profile.save()
# then
AutogroupsConfig.objects.update_groups_for_user(member)
group = member_config.get_corp_group(corp)
self.assertIn(group, member.groups.all())

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-05-24 16:55+1000\n"
"POT-Creation-Date: 2025-02-25 19:17+1000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,10 +18,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: allianceauth/analytics/apps.py:8
msgid "Analytics"
msgstr ""
#: allianceauth/analytics/models.py:22
msgid "Google Analytics Universal"
msgstr ""
@ -30,10 +26,6 @@ msgstr ""
msgid "Google Analytics V4"
msgstr ""
#: allianceauth/authentication/apps.py:9
msgid "Authentication"
msgstr ""
#: allianceauth/authentication/constants.py:6
msgid ""
"This software has exceeded the error limit for ESI. If you are a user, "
@ -43,7 +35,7 @@ msgid ""
"esi on the EVE Online Discord. https://www.eveonline.com/discord"
msgstr ""
#: allianceauth/authentication/decorators.py:52
#: allianceauth/authentication/decorators.py:49
msgid "A main character is required to perform that action. Add one below."
msgstr ""
@ -56,91 +48,91 @@ msgstr ""
msgid "You are not allowed to add or remove these restricted groups: %s"
msgstr ""
#: allianceauth/authentication/models.py:72
#: allianceauth/project_template/project_name/settings/base.py:106
#: allianceauth/authentication/models.py:70
#: allianceauth/project_template/project_name/settings/base.py:105
msgid "English"
msgstr ""
#: allianceauth/authentication/models.py:73
#: allianceauth/authentication/models.py:71
msgid "Czech"
msgstr ""
#: allianceauth/authentication/models.py:74
#: allianceauth/project_template/project_name/settings/base.py:108
#: allianceauth/authentication/models.py:72
#: allianceauth/project_template/project_name/settings/base.py:107
msgid "German"
msgstr ""
#: allianceauth/authentication/models.py:75
#: allianceauth/project_template/project_name/settings/base.py:109
#: allianceauth/authentication/models.py:73
#: allianceauth/project_template/project_name/settings/base.py:108
msgid "Spanish"
msgstr ""
#: allianceauth/authentication/models.py:76
#: allianceauth/project_template/project_name/settings/base.py:110
#: allianceauth/authentication/models.py:74
#: allianceauth/project_template/project_name/settings/base.py:109
msgid "Italian"
msgstr ""
#: allianceauth/authentication/models.py:77
#: allianceauth/project_template/project_name/settings/base.py:111
#: allianceauth/authentication/models.py:75
#: allianceauth/project_template/project_name/settings/base.py:110
msgid "Japanese"
msgstr ""
#: allianceauth/authentication/models.py:78
#: allianceauth/project_template/project_name/settings/base.py:112
#: allianceauth/authentication/models.py:76
#: allianceauth/project_template/project_name/settings/base.py:111
msgid "Korean"
msgstr ""
#: allianceauth/authentication/models.py:77
#: allianceauth/project_template/project_name/settings/base.py:112
msgid "French"
msgstr ""
#: allianceauth/authentication/models.py:78
#: allianceauth/project_template/project_name/settings/base.py:115
msgid "Russian"
msgstr ""
#: allianceauth/authentication/models.py:79
#: allianceauth/project_template/project_name/settings/base.py:113
msgid "French"
msgstr ""
#: allianceauth/authentication/models.py:80
#: allianceauth/project_template/project_name/settings/base.py:116
msgid "Russian"
msgstr ""
#: allianceauth/authentication/models.py:81
#: allianceauth/project_template/project_name/settings/base.py:114
msgid "Dutch"
msgstr ""
#: allianceauth/authentication/models.py:82
#: allianceauth/project_template/project_name/settings/base.py:115
#: allianceauth/authentication/models.py:80
#: allianceauth/project_template/project_name/settings/base.py:114
msgid "Polish"
msgstr ""
#: allianceauth/authentication/models.py:83
#: allianceauth/project_template/project_name/settings/base.py:117
#: allianceauth/authentication/models.py:81
#: allianceauth/project_template/project_name/settings/base.py:116
msgid "Ukrainian"
msgstr ""
#: allianceauth/authentication/models.py:84
#: allianceauth/project_template/project_name/settings/base.py:118
#: allianceauth/authentication/models.py:82
#: allianceauth/project_template/project_name/settings/base.py:117
msgid "Simplified Chinese"
msgstr ""
#: allianceauth/authentication/models.py:100
#: allianceauth/authentication/models.py:98
#: allianceauth/menu/templates/menu/menu-user.html:42
msgid "Language"
msgstr ""
#: allianceauth/authentication/models.py:105
#: allianceauth/authentication/models.py:103
#: allianceauth/templates/allianceauth/night-toggle.html:6
msgid "Night Mode"
msgstr ""
#: allianceauth/authentication/models.py:109
#: allianceauth/authentication/models.py:107
#: allianceauth/menu/templates/menu/menu-user.html:46
msgid "Theme"
msgstr ""
#: allianceauth/authentication/models.py:126
#: allianceauth/authentication/models.py:124
#, python-format
msgid "State changed to: %s"
msgstr ""
#: allianceauth/authentication/models.py:127
#: allianceauth/authentication/models.py:125
#, python-format
msgid "Your user's state is now: %(state)s"
msgstr ""
@ -275,53 +267,53 @@ msgstr ""
msgid "Invalid or expired activation link."
msgstr ""
#: allianceauth/authentication/views.py:158
#: allianceauth/authentication/views.py:157
#, python-format
msgid ""
"Cannot change main character to %(char)s: character owned by a different "
"account."
msgstr ""
#: allianceauth/authentication/views.py:165
#: allianceauth/authentication/views.py:164
#, python-format
msgid "Changed main character to %s"
msgstr ""
#: allianceauth/authentication/views.py:179
#: allianceauth/authentication/views.py:178
#, python-format
msgid "Added %(name)s to your account."
msgstr ""
#: allianceauth/authentication/views.py:181
#: allianceauth/authentication/views.py:180
#, python-format
msgid "Failed to add %(name)s to your account: they already have an account."
msgstr ""
#: allianceauth/authentication/views.py:226
#: allianceauth/authentication/views.py:225
msgid ""
"Unable to authenticate as the selected character. Please log in with the "
"main character associated with this account."
msgstr ""
#: allianceauth/authentication/views.py:293
#: allianceauth/authentication/views.py:292
msgid "Registration token has expired."
msgstr ""
#: allianceauth/authentication/views.py:354
#: allianceauth/authentication/views.py:353
msgid ""
"Sent confirmation email. Please follow the link to confirm your email "
"address."
msgstr ""
#: allianceauth/authentication/views.py:360
#: allianceauth/authentication/views.py:359
msgid "Confirmed your email address. Please login to continue."
msgstr ""
#: allianceauth/authentication/views.py:366
#: allianceauth/authentication/views.py:365
msgid "Registration of new accounts is not allowed at this time."
msgstr ""
#: allianceauth/corputils/apps.py:8 allianceauth/corputils/auth_hooks.py:12
#: allianceauth/corputils/auth_hooks.py:12
msgid "Corporation Stats"
msgstr ""
@ -427,10 +419,6 @@ msgstr ""
msgid "Failed to gather corporation statistics with selected token."
msgstr ""
#: allianceauth/crontab/apps.py:16
msgid "Crontab"
msgstr ""
#: allianceauth/crontab/models.py:13
msgid "Minute Offset"
msgstr ""
@ -464,15 +452,6 @@ msgstr ""
msgid "This CSS will be added to the site after the default CSS."
msgstr ""
#: allianceauth/eveonline/apps.py:8
msgid "EVE Online"
msgstr ""
#: allianceauth/eveonline/autogroups/apps.py:8
msgid "EVE Online Autogroups"
msgstr ""
#: allianceauth/fleetactivitytracking/apps.py:8
#: allianceauth/fleetactivitytracking/auth_hooks.py:10
#: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/characternotexisting.html:10
#: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkcreate.html:11
@ -582,11 +561,9 @@ msgstr ""
#: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkpersonalmonthlystatisticsview.html:75
#: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:44
#: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkview.html:92
#: allianceauth/optimer/templates/optimer/dashboard.ops.html:17
#: allianceauth/templates/allianceauth/top-menu.html:23
#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:18
#: allianceauth/timerboard/templates/timerboard/timertable.html:12
msgid "EVE time"
msgid "Eve Time"
msgstr ""
#: allianceauth/fleetactivitytracking/templates/fleetactivitytracking/fatlinkmodify.html:49
@ -751,11 +728,6 @@ msgid ""
"character needs to be online."
msgstr ""
#: allianceauth/framework/apps.py:16
msgid "Framework"
msgstr ""
#: allianceauth/groupmanagement/apps.py:8
#: allianceauth/groupmanagement/auth_hooks.py:18
#: allianceauth/groupmanagement/templates/groupmanagement/groups.html:18
msgid "Group Management"
@ -984,7 +956,7 @@ msgid "Hidden"
msgstr ""
#: allianceauth/groupmanagement/templates/groupmanagement/groupmembership.html:45
#: allianceauth/templates/allianceauth/admin-status/overview.html:15
#: allianceauth/templates/allianceauth/admin-status/overview.html:16
msgid "Open"
msgstr ""
@ -1037,7 +1009,7 @@ msgstr ""
#: allianceauth/hrapplications/templates/hrapplications/management.html:182
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:46
#: allianceauth/hrapplications/templates/hrapplications/view.html:25
#: allianceauth/srp/templates/srp/data.html:120
#: allianceauth/srp/templates/srp/data.html:117
#: allianceauth/srp/templates/srp/management.html:87
msgid "Pending"
msgstr ""
@ -1179,10 +1151,6 @@ msgstr ""
msgid "Applied to leave group %(group)s."
msgstr ""
#: allianceauth/hrapplications/apps.py:8
msgid "HR Applications"
msgstr ""
#: allianceauth/hrapplications/auth_hooks.py:15
msgid "Applications"
msgstr ""
@ -1254,7 +1222,7 @@ msgstr ""
#: allianceauth/hrapplications/templates/hrapplications/management.html:185
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:48
#: allianceauth/hrapplications/templates/hrapplications/view.html:21
#: allianceauth/srp/templates/srp/data.html:112
#: allianceauth/srp/templates/srp/data.html:109
msgid "Approved"
msgstr ""
@ -1262,7 +1230,7 @@ msgstr ""
#: allianceauth/hrapplications/templates/hrapplications/management.html:143
#: allianceauth/hrapplications/templates/hrapplications/management.html:187
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:50
#: allianceauth/srp/templates/srp/data.html:116
#: allianceauth/srp/templates/srp/data.html:113
msgid "Rejected"
msgstr ""
@ -1377,7 +1345,7 @@ msgstr ""
msgid "children"
msgstr ""
#: allianceauth/menu/admin.py:90 allianceauth/menu/models.py:22
#: allianceauth/menu/admin.py:90 allianceauth/menu/models.py:21
msgid "text"
msgstr ""
@ -1389,15 +1357,11 @@ msgstr ""
msgid "visible"
msgstr ""
#: allianceauth/menu/apps.py:16
msgid "Menu"
msgstr ""
#: allianceauth/menu/constants.py:16
msgid "app"
msgstr ""
#: allianceauth/menu/constants.py:17 allianceauth/menu/models.py:38
#: allianceauth/menu/constants.py:17 allianceauth/menu/models.py:37
msgid "folder"
msgstr ""
@ -1409,47 +1373,47 @@ msgstr ""
msgid "type"
msgstr ""
#: allianceauth/menu/models.py:23
#: allianceauth/menu/models.py:22
msgid "Text to show on menu"
msgstr ""
#: allianceauth/menu/models.py:28
#: allianceauth/menu/models.py:27
msgid "order"
msgstr ""
#: allianceauth/menu/models.py:29
#: allianceauth/menu/models.py:28
msgid "Order of the menu. Lowest First"
msgstr ""
#: allianceauth/menu/models.py:39
#: allianceauth/menu/models.py:38
msgid "Folder this item is in (optional)"
msgstr ""
#: allianceauth/menu/models.py:43
#: allianceauth/menu/models.py:42
msgid "is hidden"
msgstr ""
#: allianceauth/menu/models.py:45
#: allianceauth/menu/models.py:44
msgid ""
"Hide this menu item.If this item is a folder all items under it will be "
"hidden too"
msgstr ""
#: allianceauth/menu/models.py:60
#: allianceauth/menu/models.py:59
msgid "icon classes"
msgstr ""
#: allianceauth/menu/models.py:62
#: allianceauth/menu/models.py:61
msgid ""
"Font Awesome classes to show as icon on menu, e.g. <code>fa-solid fa-house</"
"code>"
msgstr ""
#: allianceauth/menu/models.py:68
#: allianceauth/menu/models.py:67
msgid "url"
msgstr ""
#: allianceauth/menu/models.py:69
#: allianceauth/menu/models.py:68
msgid "External URL this menu items will link to"
msgstr ""
@ -1458,7 +1422,6 @@ msgid "Add folder"
msgstr ""
#: allianceauth/menu/templates/menu/menu-notification-block.html:12
#: allianceauth/notifications/apps.py:8
#: allianceauth/notifications/templates/notifications/list.html:7
#: allianceauth/notifications/templates/notifications/list.html:11
#: allianceauth/templates/allianceauth/notifications_menu_item.html:6
@ -1484,19 +1447,19 @@ msgstr ""
msgid "Sign In"
msgstr ""
#: allianceauth/notifications/models.py:22
#: allianceauth/notifications/models.py:21
msgid "danger"
msgstr ""
#: allianceauth/notifications/models.py:23
#: allianceauth/notifications/models.py:22
msgid "warning"
msgstr ""
#: allianceauth/notifications/models.py:24
#: allianceauth/notifications/models.py:23
msgid "info"
msgstr ""
#: allianceauth/notifications/models.py:25
#: allianceauth/notifications/models.py:24
msgid "success"
msgstr ""
@ -1553,7 +1516,7 @@ msgstr ""
msgid "Deleted all read notifications."
msgstr ""
#: allianceauth/optimer/apps.py:8 allianceauth/optimer/auth_hooks.py:12
#: allianceauth/optimer/auth_hooks.py:12
msgid "Fleet Operations"
msgstr ""
@ -1627,6 +1590,11 @@ msgstr ""
msgid "Form Up System"
msgstr ""
#: allianceauth/optimer/templates/optimer/dashboard.ops.html:17
#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:18
msgid "EVE Time"
msgstr ""
#: allianceauth/optimer/templates/optimer/fleetoptable.html:14
#: allianceauth/timerboard/templates/timerboard/timertable.html:13
msgid "Local Time"
@ -1642,7 +1610,7 @@ msgstr ""
#: allianceauth/optimer/templates/optimer/management.html:28
#: allianceauth/timerboard/templates/timerboard/view.html:32
msgid "Current EVE time:"
msgid "Current Eve Time:"
msgstr ""
#: allianceauth/optimer/templates/optimer/management.html:36
@ -1687,7 +1655,6 @@ msgstr ""
msgid "Saved changes to operation timer for %(opname)s."
msgstr ""
#: allianceauth/permissions_tool/apps.py:8
#: allianceauth/permissions_tool/templates/permissions_tool/audit.html:7
#: allianceauth/permissions_tool/templates/permissions_tool/audit.html:11
#: allianceauth/permissions_tool/templates/permissions_tool/audit.html:17
@ -1744,7 +1711,7 @@ msgstr ""
msgid "Successfully set your {self.service_name} password"
msgstr ""
#: allianceauth/services/apps.py:8 allianceauth/services/auth_hooks.py:12
#: allianceauth/services/auth_hooks.py:12
msgid "Services"
msgstr ""
@ -1808,10 +1775,6 @@ msgstr ""
msgid "Password must be at least 8 characters long."
msgstr ""
#: allianceauth/services/modules/discord/apps.py:8
msgid "Discord Service"
msgstr ""
#: allianceauth/services/modules/discord/models.py:187
msgid "Discord Account Disabled"
msgstr ""
@ -1860,10 +1823,6 @@ msgid ""
"again."
msgstr ""
#: allianceauth/services/modules/discourse/apps.py:8
msgid "Discourse Service"
msgstr ""
#: allianceauth/services/modules/discourse/templates/services/discourse/discourse_service_ctrl.html:5
msgid "Discourse"
msgstr ""
@ -1894,14 +1853,6 @@ msgstr ""
msgid "Invalid payload. Please contact support if this problem persists."
msgstr ""
#: allianceauth/services/modules/example/apps.py:8
msgid "Example Service"
msgstr ""
#: allianceauth/services/modules/ips4/apps.py:8
msgid "IPS4 Service"
msgstr ""
#: allianceauth/services/modules/ips4/views.py:31
msgid "Activated IPSuite4 account."
msgstr ""
@ -1925,10 +1876,6 @@ msgstr ""
msgid "Deactivated IPSuite4 account."
msgstr ""
#: allianceauth/services/modules/mumble/apps.py:8
msgid "Mumble Service"
msgstr ""
#: allianceauth/services/modules/mumble/templates/services/mumble/mumble_connection_history.html:7
msgid "Mumble"
msgstr ""
@ -1984,10 +1931,6 @@ msgstr ""
msgid "Mumble Connection History"
msgstr ""
#: allianceauth/services/modules/openfire/apps.py:8
msgid "Openfire Service"
msgstr ""
#: allianceauth/services/modules/openfire/auth_hooks.py:27
msgid "Jabber"
msgstr ""
@ -2039,10 +1982,6 @@ msgstr ""
msgid "Set jabber password."
msgstr ""
#: allianceauth/services/modules/phpbb3/apps.py:8
msgid "phpBB3 Service"
msgstr ""
#: allianceauth/services/modules/phpbb3/views.py:34
msgid "Activated forum account."
msgstr ""
@ -2066,10 +2005,6 @@ msgstr ""
msgid "Set forum password."
msgstr ""
#: allianceauth/services/modules/smf/apps.py:8
msgid "SMF Service"
msgstr ""
#: allianceauth/services/modules/smf/views.py:52
msgid "Activated SMF account."
msgstr ""
@ -2093,10 +2028,6 @@ msgstr ""
msgid "Set SMF password."
msgstr ""
#: allianceauth/services/modules/teamspeak3/apps.py:8
msgid "TeamSpeak 3 Service"
msgstr ""
#: allianceauth/services/modules/teamspeak3/forms.py:14
#, python-format
msgid "Unable to locate user %s on server"
@ -2146,10 +2077,6 @@ msgstr ""
msgid "Reset TeamSpeak3 permission key."
msgstr ""
#: allianceauth/services/modules/xenforo/apps.py:8
msgid "Xenforo Service"
msgstr ""
#: allianceauth/services/modules/xenforo/views.py:30
msgid "Activated XenForo account."
msgstr ""
@ -2259,7 +2186,7 @@ msgid ""
"Some services provide different options. Hover over the buttons to see more."
msgstr ""
#: allianceauth/srp/apps.py:8 allianceauth/srp/auth_hooks.py:14
#: allianceauth/srp/auth_hooks.py:14
msgid "Ship Replacement"
msgstr ""
@ -2334,18 +2261,18 @@ msgid "Mark Completed"
msgstr ""
#: allianceauth/srp/templates/srp/data.html:48
#: allianceauth/srp/templates/srp/data.html:142
#: allianceauth/srp/templates/srp/data.html:139
msgid "Total Losses:"
msgstr ""
#: allianceauth/srp/templates/srp/data.html:49
#: allianceauth/srp/templates/srp/data.html:143
#: allianceauth/srp/templates/srp/data.html:140
#: allianceauth/srp/templates/srp/management.html:36
msgid "Total ISK Cost:"
msgstr ""
#: allianceauth/srp/templates/srp/data.html:60
#: allianceauth/srp/templates/srp/data.html:154
#: allianceauth/srp/templates/srp/data.html:151
msgid "Are you sure you want to delete SRP requests?"
msgstr ""
@ -2377,12 +2304,12 @@ msgstr ""
msgid "Post Time"
msgstr ""
#: allianceauth/srp/templates/srp/data.html:102
#: allianceauth/srp/templates/srp/data.html:99
#: allianceauth/srp/templates/srp/management.html:70
msgid "Link"
msgstr ""
#: allianceauth/srp/templates/srp/data.html:163
#: allianceauth/srp/templates/srp/data.html:160
msgid "No SRP requests for this fleet."
msgstr ""
@ -2566,48 +2493,52 @@ msgstr ""
msgid "Alliance Auth Notifications"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:20
#: allianceauth/templates/allianceauth/admin-status/overview.html:18
msgid "Closed"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:24
msgid "No notifications at this time"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:29
#: allianceauth/templates/allianceauth/admin-status/overview.html:33
msgid "Powered by GitLab"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:35
#: allianceauth/templates/allianceauth/admin-status/overview.html:39
msgid "Support Discord"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:49
#: allianceauth/templates/allianceauth/admin-status/overview.html:53
#: allianceauth/templates/allianceauth/admin-status/overview.html:57
msgid "Software Version"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:56
#: allianceauth/templates/allianceauth/admin-status/overview.html:60
msgid "Current"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:63
#: allianceauth/templates/allianceauth/admin-status/overview.html:67
msgid "Latest Stable"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:68
#: allianceauth/templates/allianceauth/admin-status/overview.html:72
msgid "Update available"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:76
#: allianceauth/templates/allianceauth/admin-status/overview.html:80
msgid "Latest Pre-Release"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:81
#: allianceauth/templates/allianceauth/admin-status/overview.html:85
msgid "Pre-Release available"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:91
#: allianceauth/templates/allianceauth/admin-status/overview.html:95
msgid "Task Queue"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:96
#: allianceauth/templates/allianceauth/admin-status/overview.html:100
#, python-format
msgid ""
"\n"
@ -2616,11 +2547,11 @@ msgid ""
" "
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:112
#: allianceauth/templates/allianceauth/admin-status/overview.html:116
msgid "running"
msgstr ""
#: allianceauth/templates/allianceauth/admin-status/overview.html:113
#: allianceauth/templates/allianceauth/admin-status/overview.html:117
msgid "queued"
msgstr ""
@ -2649,13 +2580,6 @@ msgstr ""
msgid "Select Theme"
msgstr ""
#: allianceauth/timerboard/apps.py:8
#: allianceauth/timerboard/templates/timerboard/form.html:10
#: allianceauth/timerboard/templates/timerboard/timer_confirm_delete.html:10
#: allianceauth/timerboard/templates/timerboard/view.html:14
msgid "Structure Timers"
msgstr ""
#: allianceauth/timerboard/form.py:36
#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:14
#: allianceauth/timerboard/templates/timerboard/timertable.html:8
@ -2842,10 +2766,6 @@ msgstr ""
msgid "Abandoned"
msgstr ""
#: allianceauth/timerboard/models.py:60
msgid "Theft"
msgstr ""
#: allianceauth/timerboard/templates/timerboard/dashboard.timers.html:7
#: allianceauth/timerboard/templates/timerboard/view.html:54
msgid "Upcoming Timers"
@ -2855,6 +2775,12 @@ msgstr ""
msgid "Timer"
msgstr ""
#: allianceauth/timerboard/templates/timerboard/form.html:10
#: allianceauth/timerboard/templates/timerboard/timer_confirm_delete.html:10
#: allianceauth/timerboard/templates/timerboard/view.html:14
msgid "Structure Timers"
msgstr ""
#: allianceauth/timerboard/templates/timerboard/form.html:25
msgid "Structure Timer Details"
msgstr ""

View File

@ -2,8 +2,8 @@
{% load navactive %}
{% load auth_notifications %}
<li class="nav-item" id="menu_item_notifications">
<a class="nav-link {% navactive request 'notifications:' %}" href="{% url 'notifications:list' %}">
<li class="nav-item {% navactive request 'notifications:' %}" id="menu_item_notifications">
<a class="nav-link" href="{% url 'notifications:list' %}">
{% with unread_count=request.user|user_unread_notification_count %}
<i class="fa-solid fa-bell{% if unread_count %} text-danger{% endif %}"></i>
{% endwith %}

View File

@ -439,7 +439,6 @@ class TestUserHasAccount(NoSocketsTestCase):
def test_return_false_if_user_does_not_exist(self):
my_user = User(username='Dummy')
my_user.save()
self.assertFalse(DiscordUser.objects.user_has_account(my_user))
def test_return_false_if_not_called_with_user_object(self):

View File

@ -78,13 +78,6 @@ class AuthUtils:
except State.DoesNotExist:
return cls.create_state('Member', 100, disconnect_signals=True)
@classmethod
def get_blue_state(cls):
try:
return State.objects.get(name='Blue')
except State.DoesNotExist:
return cls.create_state('Blue', 50, disconnect_signals=True)
@classmethod
def get_guest_state(cls):
cls.disconnect_signals()

View File

@ -1,7 +1,7 @@
PROTOCOL=https://
AUTH_SUBDOMAIN=%AUTH_SUBDOMAIN%
DOMAIN=%DOMAIN%
AA_DOCKER_TAG=registry.gitlab.com/allianceauth/allianceauth/auth:v4.7.0
AA_DOCKER_TAG=registry.gitlab.com/allianceauth/allianceauth/auth:v4.6.4
# Nginx Proxy Manager
PROXY_HTTP_PORT=80

View File

@ -1,5 +1,5 @@
FROM python:3.11-slim
ARG AUTH_VERSION=v4.7.0
ARG AUTH_VERSION=v4.6.4
ARG AUTH_PACKAGE=allianceauth==${AUTH_VERSION}
ENV AUTH_USER=allianceauth
ENV AUTH_GROUP=allianceauth

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB