mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-21 19:47:20 -06:00
Allow user to delete session key
This commit is contained in:
parent
4cb30f1ce4
commit
3dc15068b9
@ -14,8 +14,10 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
// Retrieve a session key
|
// Retrieve a session key
|
||||||
$('#request_session_key').click(function() {
|
$('#request_session_key').click(function() {
|
||||||
var private_key = $('#user_privkey').val();
|
var private_key_field = $('#user_privkey');
|
||||||
|
var private_key = private_key_field.val();
|
||||||
get_session_key(private_key);
|
get_session_key(private_key);
|
||||||
|
private_key_field.val("");
|
||||||
});
|
});
|
||||||
|
|
||||||
// Retrieve a secret via the API
|
// Retrieve a secret via the API
|
||||||
|
@ -198,7 +198,7 @@ class SessionKey(models.Model):
|
|||||||
ordering = ['user__username']
|
ordering = ['user__username']
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.user.username
|
return self.userkey.user.username
|
||||||
|
|
||||||
def save(self, master_key=None, *args, **kwargs):
|
def save(self, master_key=None, *args, **kwargs):
|
||||||
|
|
||||||
|
5
netbox/templates/users/sessionkey_delete.html
Normal file
5
netbox/templates/users/sessionkey_delete.html
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{% extends 'utilities/obj_delete.html' %}
|
||||||
|
|
||||||
|
{% block message %}
|
||||||
|
<p>Are you sure you want to delete your session key?</p>
|
||||||
|
{% endblock %}
|
@ -23,7 +23,7 @@
|
|||||||
<hr />
|
<hr />
|
||||||
{% if userkey.session_key %}
|
{% if userkey.session_key %}
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<a href="#" class="btn btn-danger">
|
<a href="{% url 'user:sessionkey_delete' %}" class="btn btn-danger">
|
||||||
<span class="fa fa-trash" aria-hidden="true"></span>
|
<span class="fa fa-trash" aria-hidden="true"></span>
|
||||||
Delete session key
|
Delete session key
|
||||||
</a>
|
</a>
|
||||||
|
@ -5,7 +5,6 @@ from . import views
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
||||||
# User profiles
|
|
||||||
url(r'^profile/$', views.profile, name='profile'),
|
url(r'^profile/$', views.profile, name='profile'),
|
||||||
url(r'^password/$', views.change_password, name='change_password'),
|
url(r'^password/$', views.change_password, name='change_password'),
|
||||||
url(r'^api-tokens/$', views.TokenListView.as_view(), name='token_list'),
|
url(r'^api-tokens/$', views.TokenListView.as_view(), name='token_list'),
|
||||||
@ -14,6 +13,7 @@ urlpatterns = [
|
|||||||
url(r'^api-tokens/(?P<pk>\d+)/delete/$', views.TokenDeleteView.as_view(), name='token_delete'),
|
url(r'^api-tokens/(?P<pk>\d+)/delete/$', views.TokenDeleteView.as_view(), name='token_delete'),
|
||||||
url(r'^user-key/$', views.userkey, name='userkey'),
|
url(r'^user-key/$', views.userkey, name='userkey'),
|
||||||
url(r'^user-key/edit/$', views.userkey_edit, name='userkey_edit'),
|
url(r'^user-key/edit/$', views.userkey_edit, name='userkey_edit'),
|
||||||
|
url(r'^session-key/delete/$', views.SessionKeyDeleteView.as_view(), name='sessionkey_delete'),
|
||||||
url(r'^recent-activity/$', views.recent_activity, name='recent_activity'),
|
url(r'^recent-activity/$', views.recent_activity, name='recent_activity'),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
@ -9,7 +9,7 @@ from django.utils.http import is_safe_url
|
|||||||
from django.views.generic import View
|
from django.views.generic import View
|
||||||
|
|
||||||
from secrets.forms import UserKeyForm
|
from secrets.forms import UserKeyForm
|
||||||
from secrets.models import UserKey
|
from secrets.models import SessionKey, UserKey
|
||||||
from utilities.forms import ConfirmationForm
|
from utilities.forms import ConfirmationForm
|
||||||
from .forms import LoginForm, PasswordChangeForm, TokenForm
|
from .forms import LoginForm, PasswordChangeForm, TokenForm
|
||||||
from .models import Token
|
from .models import Token
|
||||||
@ -124,6 +124,42 @@ def userkey_edit(request):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
class SessionKeyDeleteView(LoginRequiredMixin, View):
|
||||||
|
|
||||||
|
def get(self, request):
|
||||||
|
|
||||||
|
sessionkey = get_object_or_404(SessionKey, userkey__user=request.user)
|
||||||
|
form = ConfirmationForm()
|
||||||
|
|
||||||
|
return render(request, 'users/sessionkey_delete.html', {
|
||||||
|
'obj_type': sessionkey._meta.verbose_name,
|
||||||
|
'form': form,
|
||||||
|
'return_url': reverse('user:userkey'),
|
||||||
|
})
|
||||||
|
|
||||||
|
def post(self, request):
|
||||||
|
|
||||||
|
sessionkey = get_object_or_404(SessionKey, userkey__user=request.user)
|
||||||
|
form = ConfirmationForm(request.POST)
|
||||||
|
if form.is_valid():
|
||||||
|
|
||||||
|
# Delete session key
|
||||||
|
sessionkey.delete()
|
||||||
|
messages.success(request, "Session key deleted")
|
||||||
|
|
||||||
|
# Delete cookie
|
||||||
|
response = redirect('user:userkey')
|
||||||
|
response.delete_cookie('session_key', path=reverse('secrets-api:secret-list'))
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
return render(request, 'users/sessionkey_delete.html', {
|
||||||
|
'obj_type': sessionkey._meta.verbose_name,
|
||||||
|
'form': form,
|
||||||
|
'return_url': reverse('user:userkey'),
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
@login_required()
|
@login_required()
|
||||||
def recent_activity(request):
|
def recent_activity(request):
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user