diff --git a/api/funkwhale_api/federation/models.py b/api/funkwhale_api/federation/models.py index a2cd598f7052dd2c5939d2d517ce40c39f447d23..35ddce961c22d61641fa3f658bd291b078c10568 100644 --- a/api/funkwhale_api/federation/models.py +++ b/api/funkwhale_api/federation/models.py @@ -65,3 +65,9 @@ class Actor(models.Model): settings.FEDERATION_HOSTNAME == self.domain, self.preferred_username in actors.SYSTEM_ACTORS ]) + + @property + def system_conf(self): + from . import actors + if self.is_system: + return actors.SYSTEM_ACTORS[self.preferred_username] diff --git a/api/tests/federation/test_actors.py b/api/tests/federation/test_actors.py index 8afb94ad0d518ba5ddd8a0006affc8ef55cccd50..e72232fc08f4eba27c0b1b07c5be1d5ec12a29aa 100644 --- a/api/tests/federation/test_actors.py +++ b/api/tests/federation/test_actors.py @@ -216,6 +216,22 @@ def test_actor_is_system( assert actor.is_system is expected +@pytest.mark.parametrize('username,domain,expected', [ + ('test', 'wrongdomain.com', None), + ('notsystem', '', None), + ('test', '', actors.SYSTEM_ACTORS['test']), +]) +def test_actor_is_system( + username, domain, expected, nodb_factories, settings): + if not domain: + domain = settings.FEDERATION_HOSTNAME + actor = nodb_factories['federation.Actor']( + preferred_username=username, + domain=domain, + ) + assert actor.system_conf == expected + + @pytest.mark.parametrize('value', [False, True]) def test_library_actor_manually_approves_based_on_setting( value, settings):