allow self reset without user perms #1378
This commit is contained in:
@@ -297,6 +297,27 @@ class TestUserAction(TacticalTestCase):
|
||||
self.check_not_authenticated("patch", url)
|
||||
|
||||
|
||||
class TestUserReset(TacticalTestCase):
|
||||
def setUp(self):
|
||||
self.authenticate()
|
||||
self.setup_coresettings()
|
||||
|
||||
def test_reset_pw(self):
|
||||
url = "/accounts/resetpw/"
|
||||
data = {"password": "superSekret123456"}
|
||||
r = self.client.put(url, data, format="json")
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
self.check_not_authenticated("put", url)
|
||||
|
||||
def test_reset_2fa(self):
|
||||
url = "/accounts/reset2fa/"
|
||||
r = self.client.put(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
self.check_not_authenticated("put", url)
|
||||
|
||||
|
||||
class TestAPIKeyViews(TacticalTestCase):
|
||||
def setUp(self):
|
||||
self.setup_coresettings()
|
||||
|
@@ -13,4 +13,6 @@ urlpatterns = [
|
||||
path("roles/<int:pk>/", views.GetUpdateDeleteRole.as_view()),
|
||||
path("apikeys/", views.GetAddAPIKeys.as_view()),
|
||||
path("apikeys/<int:pk>/", views.GetUpdateDeleteAPIKey.as_view()),
|
||||
path("resetpw/", views.ResetPass.as_view()),
|
||||
path("reset2fa/", views.Reset2FA.as_view()),
|
||||
]
|
||||
|
@@ -291,3 +291,23 @@ class GetUpdateDeleteAPIKey(APIView):
|
||||
apikey = get_object_or_404(APIKey, pk=pk)
|
||||
apikey.delete()
|
||||
return Response("The API Key was deleted")
|
||||
|
||||
|
||||
class ResetPass(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def put(self, request):
|
||||
user = request.user
|
||||
user.set_password(request.data["password"])
|
||||
user.save()
|
||||
return Response("Password was reset.")
|
||||
|
||||
|
||||
class Reset2FA(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def put(self, request):
|
||||
user = request.user
|
||||
user.totp_key = ""
|
||||
user.save()
|
||||
return Response("2FA was reset. Log out and back in to setup.")
|
||||
|
Reference in New Issue
Block a user