mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
186 lines
4.9 KiB
Python
186 lines
4.9 KiB
Python
from django.db.models import Count
|
|
|
|
from extras.models import ObjectChange
|
|
from extras.tables import ObjectChangeTable
|
|
from netbox.views import generic
|
|
from utilities.views import register_model_view
|
|
from . import filtersets, forms, tables
|
|
from .models import NetBoxGroup, NetBoxUser, ObjectPermission, Token
|
|
|
|
|
|
#
|
|
# Tokens
|
|
#
|
|
|
|
class TokenListView(generic.ObjectListView):
|
|
queryset = Token.objects.all()
|
|
filterset = filtersets.TokenFilterSet
|
|
filterset_form = forms.TokenFilterForm
|
|
table = tables.TokenTable
|
|
|
|
|
|
@register_model_view(Token)
|
|
class TokenView(generic.ObjectView):
|
|
queryset = Token.objects.all()
|
|
|
|
|
|
@register_model_view(Token, 'edit')
|
|
class TokenEditView(generic.ObjectEditView):
|
|
queryset = Token.objects.all()
|
|
form = forms.TokenForm
|
|
|
|
|
|
@register_model_view(Token, 'delete')
|
|
class TokenDeleteView(generic.ObjectDeleteView):
|
|
queryset = Token.objects.all()
|
|
|
|
|
|
class TokenBulkImportView(generic.BulkImportView):
|
|
queryset = Token.objects.all()
|
|
model_form = forms.TokenImportForm
|
|
|
|
|
|
class TokenBulkEditView(generic.BulkEditView):
|
|
queryset = Token.objects.all()
|
|
table = tables.TokenTable
|
|
form = forms.TokenBulkEditForm
|
|
|
|
|
|
class TokenBulkDeleteView(generic.BulkDeleteView):
|
|
queryset = Token.objects.all()
|
|
table = tables.TokenTable
|
|
|
|
|
|
#
|
|
# Users
|
|
#
|
|
|
|
class UserListView(generic.ObjectListView):
|
|
queryset = NetBoxUser.objects.all()
|
|
filterset = filtersets.UserFilterSet
|
|
filterset_form = forms.UserFilterForm
|
|
table = tables.UserTable
|
|
|
|
|
|
@register_model_view(NetBoxUser)
|
|
class UserView(generic.ObjectView):
|
|
queryset = NetBoxUser.objects.all()
|
|
template_name = 'users/user.html'
|
|
|
|
def get_extra_context(self, request, instance):
|
|
changelog = ObjectChange.objects.restrict(request.user, 'view').filter(user=instance)[:20]
|
|
changelog_table = ObjectChangeTable(changelog)
|
|
|
|
return {
|
|
'changelog_table': changelog_table,
|
|
}
|
|
|
|
|
|
@register_model_view(NetBoxUser, 'edit')
|
|
class UserEditView(generic.ObjectEditView):
|
|
queryset = NetBoxUser.objects.all()
|
|
form = forms.UserForm
|
|
|
|
|
|
@register_model_view(NetBoxUser, 'delete')
|
|
class UserDeleteView(generic.ObjectDeleteView):
|
|
queryset = NetBoxUser.objects.all()
|
|
|
|
|
|
class UserBulkEditView(generic.BulkEditView):
|
|
queryset = NetBoxUser.objects.all()
|
|
filterset = filtersets.UserFilterSet
|
|
table = tables.UserTable
|
|
form = forms.UserBulkEditForm
|
|
|
|
|
|
class UserBulkImportView(generic.BulkImportView):
|
|
queryset = NetBoxUser.objects.all()
|
|
model_form = forms.UserImportForm
|
|
|
|
|
|
class UserBulkDeleteView(generic.BulkDeleteView):
|
|
queryset = NetBoxUser.objects.all()
|
|
filterset = filtersets.UserFilterSet
|
|
table = tables.UserTable
|
|
|
|
|
|
#
|
|
# Groups
|
|
#
|
|
|
|
class GroupListView(generic.ObjectListView):
|
|
queryset = NetBoxGroup.objects.annotate(users_count=Count('user'))
|
|
filterset = filtersets.GroupFilterSet
|
|
filterset_form = forms.GroupFilterForm
|
|
table = tables.GroupTable
|
|
|
|
|
|
@register_model_view(NetBoxGroup)
|
|
class GroupView(generic.ObjectView):
|
|
queryset = NetBoxGroup.objects.all()
|
|
template_name = 'users/group.html'
|
|
|
|
|
|
@register_model_view(NetBoxGroup, 'edit')
|
|
class GroupEditView(generic.ObjectEditView):
|
|
queryset = NetBoxGroup.objects.all()
|
|
form = forms.GroupForm
|
|
|
|
|
|
@register_model_view(NetBoxGroup, 'delete')
|
|
class GroupDeleteView(generic.ObjectDeleteView):
|
|
queryset = NetBoxGroup.objects.all()
|
|
|
|
|
|
class GroupBulkImportView(generic.BulkImportView):
|
|
queryset = NetBoxGroup.objects.all()
|
|
model_form = forms.GroupImportForm
|
|
|
|
|
|
class GroupBulkDeleteView(generic.BulkDeleteView):
|
|
queryset = NetBoxGroup.objects.annotate(users_count=Count('user'))
|
|
filterset = filtersets.GroupFilterSet
|
|
table = tables.GroupTable
|
|
|
|
|
|
#
|
|
# ObjectPermissions
|
|
#
|
|
|
|
class ObjectPermissionListView(generic.ObjectListView):
|
|
queryset = ObjectPermission.objects.all()
|
|
filterset = filtersets.ObjectPermissionFilterSet
|
|
filterset_form = forms.ObjectPermissionFilterForm
|
|
table = tables.ObjectPermissionTable
|
|
|
|
|
|
@register_model_view(ObjectPermission)
|
|
class ObjectPermissionView(generic.ObjectView):
|
|
queryset = ObjectPermission.objects.all()
|
|
template_name = 'users/objectpermission.html'
|
|
|
|
|
|
@register_model_view(ObjectPermission, 'edit')
|
|
class ObjectPermissionEditView(generic.ObjectEditView):
|
|
queryset = ObjectPermission.objects.all()
|
|
form = forms.ObjectPermissionForm
|
|
|
|
|
|
@register_model_view(ObjectPermission, 'delete')
|
|
class ObjectPermissionDeleteView(generic.ObjectDeleteView):
|
|
queryset = ObjectPermission.objects.all()
|
|
|
|
|
|
class ObjectPermissionBulkEditView(generic.BulkEditView):
|
|
queryset = ObjectPermission.objects.all()
|
|
filterset = filtersets.ObjectPermissionFilterSet
|
|
table = tables.ObjectPermissionTable
|
|
form = forms.ObjectPermissionBulkEditForm
|
|
|
|
|
|
class ObjectPermissionBulkDeleteView(generic.BulkDeleteView):
|
|
queryset = ObjectPermission.objects.all()
|
|
filterset = filtersets.ObjectPermissionFilterSet
|
|
table = tables.ObjectPermissionTable
|