feat: allow editing user profile info via modal

This commit is contained in:
Victor Andersson
2025-11-11 21:04:33 +01:00
parent 73ff0a9d45
commit 3d8e5ed410
8 changed files with 352 additions and 138 deletions

View File

@@ -239,3 +239,40 @@ class DashboardViewTests(TestCase):
claim.refresh_from_db()
self.assertIsNone(claim.paid_at)
self.assertFalse(claim.logs.filter(action=ClaimLog.Action.MARKED_PAID).exists())
class UserManagementViewTests(TestCase):
def setUp(self):
User = get_user_model()
self.admin = User.objects.create_user(username="manager", password="test123", email="manager@example.com")
perms = Permission.objects.filter(codename__in=["view_user", "change_user"])
self.admin.user_permissions.add(*perms)
self.client.force_login(self.admin)
self.target = User.objects.create_user(username="editor", password="oldpass123", email="old@example.com")
def test_admin_can_update_profile_and_password(self):
response = self.client.post(
reverse("claims:user-manage"),
{
"action": "update",
"user_id": self.target.id,
"is_staff": "on",
"grant_view": "on",
"grant_change": "",
"grant_edit": "on",
"grant_pay": "on",
"first_name": "New",
"last_name": "Name",
"email": "new@example.com",
"new_password1": "StrongPass123!",
"new_password2": "StrongPass123!",
},
follow=True,
)
self.assertEqual(response.status_code, 200)
target = get_user_model().objects.get(pk=self.target.pk)
self.assertEqual(target.first_name, "New")
self.assertEqual(target.last_name, "Name")
self.assertEqual(target.email, "new@example.com")
self.assertTrue(target.is_staff)
self.assertTrue(target.check_password("StrongPass123!"))