Admin UI to list and manage remote and local accounts

This commit is contained in:
Eliot Berriot 2019-01-03 17:10:02 +01:00
parent b1194e50de
commit e186c6bb06
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
18 changed files with 797 additions and 283 deletions

View file

@ -37,10 +37,15 @@ class ManageActorFilterSet(filters.FilterSet):
search_fields={
"name": {"to": "name"},
"username": {"to": "preferred_username"},
"email": {"to": "user__email"},
"bio": {"to": "summary"},
"type": {"to": "type"},
},
filter_fields={"domain": {"to": "domain_id__iexact"}},
filter_fields={
"domain": {"to": "domain__name__iexact"},
"username": {"to": "preferred_username__iexact"},
"email": {"to": "user__email__iexact"},
},
)
)
local = filters.BooleanFilter(name="_", method="filter_local")

View file

@ -116,6 +116,7 @@ class ManageUserSerializer(serializers.ModelSerializer):
"permissions",
"privacy_level",
"upload_quota",
"full_username",
)
read_only_fields = [
"id",
@ -194,9 +195,8 @@ class ManageDomainSerializer(serializers.ModelSerializer):
class ManageActorSerializer(serializers.ModelSerializer):
outbox_activities_count = serializers.SerializerMethodField()
uploads_count = serializers.SerializerMethodField()
followers_count = serializers.SerializerMethodField()
user = ManageUserSerializer()
class Meta:
model = federation_models.Actor
@ -205,6 +205,7 @@ class ManageActorSerializer(serializers.ModelSerializer):
"url",
"fid",
"preferred_username",
"full_username",
"domain",
"name",
"summary",
@ -215,16 +216,9 @@ class ManageActorSerializer(serializers.ModelSerializer):
"outbox_url",
"shared_inbox_url",
"manually_approves_followers",
"outbox_activities_count",
"uploads_count",
"followers_count",
"user",
]
def get_uploads_count(self, o):
return getattr(o, "uploads_count", 0)
def get_followers_count(self, o):
return getattr(o, "followers_count", 0)
def get_outbox_activities_count(self, o):
return getattr(o, "outbox_activities_count", 0)

View file

@ -138,10 +138,9 @@ class ManageActorViewSet(
lookup_value_regex = r"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"
queryset = (
federation_models.Actor.objects.all()
.with_outbox_activities_count()
.with_followers_count()
.with_uploads_count()
.order_by("-creation_date")
.select_related("user")
)
serializer_class = serializers.ManageActorSerializer
filter_class = filters.ManageActorFilterSet
@ -155,7 +154,6 @@ class ManageActorViewSet(
"creation_date",
"last_fetch_date",
"uploads_count",
"followers_count",
"outbox_activities_count",
]