mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-25 00:36:11 -06:00
Move UserTokenTable to account app
This commit is contained in:
parent
d95e16aac9
commit
c0959dbce0
55
netbox/account/tables.py
Normal file
55
netbox/account/tables.py
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
|
from account.models import UserToken
|
||||||
|
from netbox.tables import NetBoxTable, columns
|
||||||
|
|
||||||
|
__all__ = (
|
||||||
|
'UserTokenTable',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
TOKEN = """<samp><span id="token_{{ record.pk }}">{{ record }}</span></samp>"""
|
||||||
|
|
||||||
|
ALLOWED_IPS = """{{ value|join:", " }}"""
|
||||||
|
|
||||||
|
COPY_BUTTON = """
|
||||||
|
{% if settings.ALLOW_TOKEN_RETRIEVAL %}
|
||||||
|
{% copy_content record.pk prefix="token_" color="success" %}
|
||||||
|
{% endif %}
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class UserTokenTable(NetBoxTable):
|
||||||
|
"""
|
||||||
|
Table for users to manager their own API tokens under account views.
|
||||||
|
"""
|
||||||
|
key = columns.TemplateColumn(
|
||||||
|
verbose_name=_('Key'),
|
||||||
|
template_code=TOKEN,
|
||||||
|
)
|
||||||
|
write_enabled = columns.BooleanColumn(
|
||||||
|
verbose_name=_('Write Enabled')
|
||||||
|
)
|
||||||
|
created = columns.DateColumn(
|
||||||
|
verbose_name=_('Created'),
|
||||||
|
)
|
||||||
|
expires = columns.DateColumn(
|
||||||
|
verbose_name=_('Expires'),
|
||||||
|
)
|
||||||
|
last_used = columns.DateTimeColumn(
|
||||||
|
verbose_name=_('Last Used'),
|
||||||
|
)
|
||||||
|
allowed_ips = columns.TemplateColumn(
|
||||||
|
verbose_name=_('Allowed IPs'),
|
||||||
|
template_code=ALLOWED_IPS
|
||||||
|
)
|
||||||
|
actions = columns.ActionsColumn(
|
||||||
|
actions=('edit', 'delete'),
|
||||||
|
extra_buttons=COPY_BUTTON
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta(NetBoxTable.Meta):
|
||||||
|
model = UserToken
|
||||||
|
fields = (
|
||||||
|
'pk', 'id', 'key', 'description', 'write_enabled', 'created', 'expires', 'last_used', 'allowed_ips',
|
||||||
|
)
|
@ -1,7 +1,7 @@
|
|||||||
import django_tables2 as tables
|
import django_tables2 as tables
|
||||||
from django.utils.translation import gettext as _
|
from django.utils.translation import gettext as _
|
||||||
|
|
||||||
from account.models import UserToken
|
from account.tables import UserTokenTable
|
||||||
from netbox.tables import NetBoxTable, columns
|
from netbox.tables import NetBoxTable, columns
|
||||||
from users.models import NetBoxGroup, NetBoxUser, ObjectPermission, Token
|
from users.models import NetBoxGroup, NetBoxUser, ObjectPermission, Token
|
||||||
|
|
||||||
@ -13,58 +13,7 @@ __all__ = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
TOKEN = """<samp><span id="token_{{ record.pk }}">{{ record }}</span></samp>"""
|
|
||||||
|
|
||||||
ALLOWED_IPS = """{{ value|join:", " }}"""
|
|
||||||
|
|
||||||
COPY_BUTTON = """
|
|
||||||
{% if settings.ALLOW_TOKEN_RETRIEVAL %}
|
|
||||||
{% copy_content record.pk prefix="token_" color="success" %}
|
|
||||||
{% endif %}
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
class UserTokenTable(NetBoxTable):
|
|
||||||
"""
|
|
||||||
Table for users to manager their own API tokens under account views.
|
|
||||||
"""
|
|
||||||
key = columns.TemplateColumn(
|
|
||||||
verbose_name=_('Key'),
|
|
||||||
template_code=TOKEN,
|
|
||||||
)
|
|
||||||
write_enabled = columns.BooleanColumn(
|
|
||||||
verbose_name=_('Write Enabled')
|
|
||||||
)
|
|
||||||
created = columns.DateColumn(
|
|
||||||
verbose_name=_('Created'),
|
|
||||||
)
|
|
||||||
expires = columns.DateColumn(
|
|
||||||
verbose_name=_('Expires'),
|
|
||||||
)
|
|
||||||
last_used = columns.DateTimeColumn(
|
|
||||||
verbose_name=_('Last Used'),
|
|
||||||
)
|
|
||||||
allowed_ips = columns.TemplateColumn(
|
|
||||||
verbose_name=_('Allowed IPs'),
|
|
||||||
template_code=ALLOWED_IPS
|
|
||||||
)
|
|
||||||
# TODO: Fix permissions evaluation & viewname resolution
|
|
||||||
actions = columns.ActionsColumn(
|
|
||||||
actions=('edit', 'delete'),
|
|
||||||
extra_buttons=COPY_BUTTON
|
|
||||||
)
|
|
||||||
|
|
||||||
class Meta(NetBoxTable.Meta):
|
|
||||||
model = UserToken
|
|
||||||
fields = (
|
|
||||||
'pk', 'id', 'key', 'description', 'write_enabled', 'created', 'expires', 'last_used', 'allowed_ips',
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class TokenTable(UserTokenTable):
|
class TokenTable(UserTokenTable):
|
||||||
"""
|
|
||||||
General-purpose table for API token management.
|
|
||||||
"""
|
|
||||||
user = tables.Column(
|
user = tables.Column(
|
||||||
linkify=True,
|
linkify=True,
|
||||||
verbose_name=_('User')
|
verbose_name=_('User')
|
||||||
|
Loading…
Reference in New Issue
Block a user