write label for token
This commit is contained in:
parent
672b3f3a8e
commit
6a5d83a450
22
webhook/migrations/0002_token_active_token_label.py
Normal file
22
webhook/migrations/0002_token_active_token_label.py
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Generated by Django 4.2.5 on 2025-01-27 09:20
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('webhook', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='token',
|
||||
name='active',
|
||||
field=models.BooleanField(default=True, verbose_name='Active'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='token',
|
||||
name='label',
|
||||
field=models.CharField(default='', max_length=250, verbose_name='Label'),
|
||||
),
|
||||
]
|
|
@ -1,7 +1,10 @@
|
|||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
# Create your models here.
|
||||
|
||||
|
||||
class Token(models.Model):
|
||||
token = models.UUIDField()
|
||||
label = models.CharField(_("Label"), max_length=250, default="")
|
||||
active = models.BooleanField(_("Active"), default=True)
|
||||
|
|
|
@ -43,6 +43,7 @@ class TokensTable(tables.Table):
|
|||
)
|
||||
|
||||
token = tables.Column(verbose_name=_("Token"), empty_values=())
|
||||
label = tables.Column(verbose_name=_("Label"), empty_values=())
|
||||
|
||||
# def render_view_user(self):
|
||||
# return format_html('<i class="bi bi-eye"></i>')
|
||||
|
@ -71,13 +72,12 @@ class TokensTable(tables.Table):
|
|||
class Meta:
|
||||
model = Token
|
||||
template_name = "idhub/custom_table.html"
|
||||
fields = ("token", "lavel", "active")
|
||||
fields = ("token", "label", "active")
|
||||
|
||||
def render_active(self, value):
|
||||
"""
|
||||
Render icons custom based on active value
|
||||
"""
|
||||
# import pdb; pdb.set_trace()
|
||||
if value: # if `active` is True
|
||||
return format_html('<i class="bi bi-toggle-on text-primary"></i>')
|
||||
else: # if `active` is False
|
||||
|
|
34
webhook/templates/new_token.html
Normal file
34
webhook/templates/new_token.html
Normal file
|
@ -0,0 +1,34 @@
|
|||
{% extends "idhub/base_admin.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<h3>
|
||||
<i class="{{ icon }}"></i>
|
||||
{{ subtitle }}
|
||||
</h3>
|
||||
{% load django_bootstrap5 %}
|
||||
<form role="form" method="post">
|
||||
{% csrf_token %}
|
||||
{% if form.errors %}
|
||||
<div class="alert alert-danger alert-icon alert-icon-border alert-dismissible" role="alert">
|
||||
<div class="icon"><span class="mdi mdi-close-circle-o"></span></div>
|
||||
<div class="message">
|
||||
{% for field, error in form.errors.items %}
|
||||
{{ error }}<br />
|
||||
{% endfor %}
|
||||
<button class="btn-close" type="button" data-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
{% bootstrap_form form %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions-no-box">
|
||||
<a class="btn btn-grey" href="{% url 'webhook:tokens' %}">{% translate "Cancel" %}</a>
|
||||
<input class="btn btn-green-admin" type="submit" name="submit" value="{% translate 'Save' %}" />
|
||||
</div>
|
||||
|
||||
</form>
|
||||
{% endblock %}
|
|
@ -3,13 +3,14 @@ import json
|
|||
from django.shortcuts import get_object_or_404, redirect
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.views.generic.edit import DeleteView
|
||||
from django.views.generic.edit import DeleteView, CreateView
|
||||
from django.views.generic.base import View
|
||||
from django.core.cache import cache
|
||||
from django.http import JsonResponse
|
||||
from django_tables2 import SingleTableView
|
||||
from pyvckit.verify import verify_vp, verify_vc
|
||||
from uuid import uuid4
|
||||
from django.urls import reverse_lazy
|
||||
|
||||
from idhub.mixins import AdminView
|
||||
from idhub_auth.models import User
|
||||
|
@ -30,7 +31,7 @@ def webhook_verify(request):
|
|||
return JsonResponse({'error': 'Invalid or missing token'}, status=401)
|
||||
|
||||
token = auth_header.split(' ')[1].strip("'").strip('"')
|
||||
tk = Token.objects.filter(token=token).first()
|
||||
tk = Token.objects.filter(token=token, active=True).first()
|
||||
if not tk:
|
||||
return JsonResponse({'error': 'Invalid or missing token'}, status=401)
|
||||
|
||||
|
@ -70,7 +71,7 @@ def webhook_issue(request):
|
|||
return JsonResponse({'error': 'Invalid or missing token'}, status=401)
|
||||
|
||||
token = auth_header.split(' ')[1].strip("'").strip('"')
|
||||
tk = Token.objects.filter(token=token).first()
|
||||
tk = Token.objects.filter(token=token, active=True).first()
|
||||
if not tk:
|
||||
return JsonResponse({'error': 'Invalid or missing token'}, status=401)
|
||||
|
||||
|
@ -169,10 +170,23 @@ class TokenStatusView(AdminView, DeleteView):
|
|||
return redirect('webhook:tokens')
|
||||
|
||||
|
||||
class TokenNewView(AdminView, View):
|
||||
class TokenNewView(AdminView, CreateView):
|
||||
title = _("Token management")
|
||||
section = "Credential"
|
||||
subtitle = _('New Tokens')
|
||||
icon = 'bi bi-key'
|
||||
title = "Token"
|
||||
template_name = "new_token.html"
|
||||
model = Token
|
||||
fields = ("label",)
|
||||
success_url = reverse_lazy('webhook:tokens')
|
||||
# def get(self, request, *args, **kwargs):
|
||||
# self.check_valid_user()
|
||||
# Token.objects.create(token=uuid4())
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
self.check_valid_user()
|
||||
Token.objects.create(token=uuid4())
|
||||
# return redirect('webhook:tokens')
|
||||
|
||||
return redirect('webhook:tokens')
|
||||
def form_valid(self, form):
|
||||
form.instance.token = uuid4()
|
||||
form.save()
|
||||
return super().form_valid(form)
|
||||
|
|
Loading…
Reference in a new issue