From a57d975183e1fc3e73d3ed8b6de145c1697e8890 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Fri, 18 May 2018 19:18:40 +0200
Subject: [PATCH] See #152: updated admin interface

---
 api/funkwhale_api/users/admin.py  | 17 ++++++++++++++++-
 api/funkwhale_api/users/models.py | 14 +++++++++++---
 2 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/api/funkwhale_api/users/admin.py b/api/funkwhale_api/users/admin.py
index 89b67d3df..c772603e9 100644
--- a/api/funkwhale_api/users/admin.py
+++ b/api/funkwhale_api/users/admin.py
@@ -5,6 +5,7 @@ from django import forms
 from django.contrib import admin
 from django.contrib.auth.admin import UserAdmin as AuthUserAdmin
 from django.contrib.auth.forms import UserChangeForm, UserCreationForm
+from django.utils.translation import ugettext_lazy as _
 
 from .models import User
 
@@ -41,8 +42,22 @@ class UserAdmin(AuthUserAdmin):
         'email',
         'date_joined',
         'last_login',
-        'privacy_level',
+        'is_staff',
+        'is_superuser',
     ]
     list_filter = [
+        'is_superuser',
+        'is_staff',
         'privacy_level',
+        'permission_settings',
+        'permission_library',
+        'permission_federation',
     ]
+
+    fieldsets = (
+        (None, {'fields': ('username', 'password', 'privacy_level')}),
+        (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
+        (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
+                                       'permission_library', 'permission_settings', 'permission_federation')}),
+        (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
+    )
diff --git a/api/funkwhale_api/users/models.py b/api/funkwhale_api/users/models.py
index 1de23092a..c16cd62b3 100644
--- a/api/funkwhale_api/users/models.py
+++ b/api/funkwhale_api/users/models.py
@@ -46,9 +46,17 @@ class User(AbstractUser):
         blank=True, null=True, max_length=255)
 
     # permissions
-    permission_federation = models.BooleanField(default=False)
-    permission_library = models.BooleanField(default=False)
-    permission_settings = models.BooleanField(default=False)
+    permission_federation = models.BooleanField(
+        'Manage library federation',
+        help_text='Follow other instances, accept/deny library follow requests...',
+        default=False)
+    permission_library = models.BooleanField(
+        'Manage library',
+        help_text='Import new content, manage existing content',
+        default=False)
+    permission_settings = models.BooleanField(
+        'Manage instance-level settings',
+        default=False)
 
     def __str__(self):
         return self.username
-- 
GitLab