1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Closes #9708: Render user API tokens in a table

This commit is contained in:
jeremystretch
2022-07-11 15:43:59 -04:00
parent 531d961d30
commit 123e758c6d
8 changed files with 83 additions and 90 deletions

View File

@ -21,6 +21,7 @@ from netbox.config import get_config
from utilities.forms import ConfirmationForm
from .forms import LoginForm, PasswordChangeForm, TokenForm, UserConfigForm
from .models import Token
from .tables import TokenTable
#
@ -157,7 +158,7 @@ class UserConfigView(LoginRequiredMixin, View):
form.save()
messages.success(request, "Your preferences have been updated.")
return redirect('user:preferences')
return redirect('users:preferences')
return render(request, self.template_name, {
'form': form,
@ -172,7 +173,7 @@ class ChangePasswordView(LoginRequiredMixin, View):
# LDAP users cannot change their password here
if getattr(request.user, 'ldap_username', None):
messages.warning(request, "LDAP-authenticated user credentials cannot be changed within NetBox.")
return redirect('user:profile')
return redirect('users:profile')
form = PasswordChangeForm(user=request.user)
@ -187,7 +188,7 @@ class ChangePasswordView(LoginRequiredMixin, View):
form.save()
update_session_auth_hash(request, form.user)
messages.success(request, "Your password has been changed successfully.")
return redirect('user:profile')
return redirect('users:profile')
return render(request, self.template_name, {
'form': form,
@ -204,10 +205,13 @@ class TokenListView(LoginRequiredMixin, View):
def get(self, request):
tokens = Token.objects.filter(user=request.user)
table = TokenTable(tokens)
table.configure(request)
return render(request, 'users/api_tokens.html', {
'tokens': tokens,
'active_tab': 'api-tokens',
'table': table,
})
@ -225,7 +229,7 @@ class TokenEditView(LoginRequiredMixin, View):
return render(request, 'generic/object_edit.html', {
'object': token,
'form': form,
'return_url': reverse('user:token_list'),
'return_url': reverse('users:token_list'),
})
def post(self, request, pk=None):
@ -248,12 +252,12 @@ class TokenEditView(LoginRequiredMixin, View):
if '_addanother' in request.POST:
return redirect(request.path)
else:
return redirect('user:token_list')
return redirect('users:token_list')
return render(request, 'generic/object_edit.html', {
'object': token,
'form': form,
'return_url': reverse('user:token_list'),
'return_url': reverse('users:token_list'),
})
@ -263,14 +267,14 @@ class TokenDeleteView(LoginRequiredMixin, View):
token = get_object_or_404(Token.objects.filter(user=request.user), pk=pk)
initial_data = {
'return_url': reverse('user:token_list'),
'return_url': reverse('users:token_list'),
}
form = ConfirmationForm(initial=initial_data)
return render(request, 'generic/object_delete.html', {
'object': token,
'form': form,
'return_url': reverse('user:token_list'),
'return_url': reverse('users:token_list'),
})
def post(self, request, pk):
@ -280,10 +284,10 @@ class TokenDeleteView(LoginRequiredMixin, View):
if form.is_valid():
token.delete()
messages.success(request, "Token deleted")
return redirect('user:token_list')
return redirect('users:token_list')
return render(request, 'generic/object_delete.html', {
'object': token,
'form': form,
'return_url': reverse('user:token_list'),
'return_url': reverse('users:token_list'),
})