Statistics
| Branch: | Tag: | Revision:

root / flowspec / admin.py @ 1e02e391

History | View | Annotate | Download (3.3 kB)

1 a24fbf37 Leonidas Poulopoulos
from django.contrib import admin
2 a24fbf37 Leonidas Poulopoulos
from flowspy.flowspec.models import *
3 6ee21ffd Leonidas Poulopoulos
from flowspy.accounts.models import *
4 357d48dc Leonidas Poulopoulos
from utils import proxy as PR
5 d50fd7b6 Leonidas Poulopoulos
from flowspec.tasks import *
6 d50fd7b6 Leonidas Poulopoulos
from django.contrib.auth.models import User
7 d50fd7b6 Leonidas Poulopoulos
from django.contrib.auth.admin import UserAdmin
8 1e02e391 Leonidas Poulopoulos
from flowspy.accounts.models import UserProfile
9 1e02e391 Leonidas Poulopoulos
from flowspy.peers.models import *
10 887b82c3 Leonidas Poulopoulos
from flowspy.flowspec.forms import *
11 fdc3d663 Leonidas Poulopoulos
import datetime
12 6e9a9419 Leonidas Poulopoulos
from django.conf import settings
13 1e02e391 Leonidas Poulopoulos
from django.forms import ModelForm
14 1e02e391 Leonidas Poulopoulos
from django.contrib.admin.widgets import FilteredSelectMultiple
15 1e02e391 Leonidas Poulopoulos
16 1e02e391 Leonidas Poulopoulos
class PeerAdminForm(ModelForm):
17 1e02e391 Leonidas Poulopoulos
    networks=forms.ModelMultipleChoiceField(PeerRange.objects.all(),widget=
18 1e02e391 Leonidas Poulopoulos
            FilteredSelectMultiple("PeerRange",True), required=False)
19 1e02e391 Leonidas Poulopoulos
20 1e02e391 Leonidas Poulopoulos
    class Meta:
21 1e02e391 Leonidas Poulopoulos
        model= Peer
22 1e02e391 Leonidas Poulopoulos
23 1e02e391 Leonidas Poulopoulos
class PeerAdmin(admin.ModelAdmin):
24 1e02e391 Leonidas Poulopoulos
    form = PeerAdminForm
25 1e02e391 Leonidas Poulopoulos
26 1e02e391 Leonidas Poulopoulos
class PeerTechcAdmin(admin.ModelAdmin):
27 1e02e391 Leonidas Poulopoulos
    list_display = ('get_peer_name', 'emails')
28 357d48dc Leonidas Poulopoulos
29 d50fd7b6 Leonidas Poulopoulos
class RouteAdmin(admin.ModelAdmin):
30 887b82c3 Leonidas Poulopoulos
    form = RouteForm
31 d50fd7b6 Leonidas Poulopoulos
    actions = ['deactivate']
32 d50fd7b6 Leonidas Poulopoulos
    
33 d50fd7b6 Leonidas Poulopoulos
    def deactivate(self, request, queryset):
34 fd3870ee Leonidas Poulopoulos
        queryset = queryset.filter(status='ACTIVE')
35 d50fd7b6 Leonidas Poulopoulos
        response = batch_delete.delay(queryset, reason="ADMININACTIVE")
36 d50fd7b6 Leonidas Poulopoulos
        self.message_user(request, "Added request %s to job que. Check in a while for result" % response)
37 d50fd7b6 Leonidas Poulopoulos
    deactivate.short_description = "Remove selected routes from network"
38 d50fd7b6 Leonidas Poulopoulos
39 887b82c3 Leonidas Poulopoulos
    def save_model(self, request, obj, form, change):
40 887b82c3 Leonidas Poulopoulos
        obj.status = "PENDING"
41 887b82c3 Leonidas Poulopoulos
        obj.save()
42 6e9a9419 Leonidas Poulopoulos
        if change:
43 6e9a9419 Leonidas Poulopoulos
            obj.commit_edit()
44 6e9a9419 Leonidas Poulopoulos
        else:
45 6e9a9419 Leonidas Poulopoulos
            obj.commit_add()
46 887b82c3 Leonidas Poulopoulos
47 887b82c3 Leonidas Poulopoulos
    def has_delete_permission(self, request, obj=None):
48 887b82c3 Leonidas Poulopoulos
        return False
49 887b82c3 Leonidas Poulopoulos
50 7d408f6f Leonidas Poulopoulos
    list_display = ('name', 'status', 'applier' , 'applier_peer', 'get_match', 'get_then', 'response', "expires", "comments")
51 7d408f6f Leonidas Poulopoulos
52 d50fd7b6 Leonidas Poulopoulos
    fieldsets = [
53 d50fd7b6 Leonidas Poulopoulos
        (None,               {'fields': ['name','applier']}),
54 d50fd7b6 Leonidas Poulopoulos
        ("Match",               {'fields': ['source', 'sourceport', 'destination', 'destinationport', 'port']}),
55 d50fd7b6 Leonidas Poulopoulos
        ('Advanced Match Statements', {'fields': ['dscp', 'fragmenttype', 'icmpcode', 'icmptype', 'packetlength', 'protocol', 'tcpflag'], 'classes': ['collapse']}),
56 d50fd7b6 Leonidas Poulopoulos
        ("Then",               {'fields': ['then' ]}),
57 6e9a9419 Leonidas Poulopoulos
        ("Expires",               {'fields': ['expires' ]}),
58 d50fd7b6 Leonidas Poulopoulos
        (None,               {'fields': ['comments',]}),
59 d50fd7b6 Leonidas Poulopoulos
        
60 d50fd7b6 Leonidas Poulopoulos
    ]
61 d50fd7b6 Leonidas Poulopoulos
    
62 887b82c3 Leonidas Poulopoulos
63 887b82c3 Leonidas Poulopoulos
64 d50fd7b6 Leonidas Poulopoulos
class UserProfileInline(admin.StackedInline):
65 d50fd7b6 Leonidas Poulopoulos
    model = UserProfile
66 d50fd7b6 Leonidas Poulopoulos
    
67 d50fd7b6 Leonidas Poulopoulos
class UserProfileAdmin(UserAdmin):
68 d50fd7b6 Leonidas Poulopoulos
    inlines = [UserProfileInline]
69 b10e01d6 Leonidas Poulopoulos
#    fields = ('name', 'applier', 'expires')
70 357d48dc Leonidas Poulopoulos
71 357d48dc Leonidas Poulopoulos
    #def formfield_for_dbfield(self, db_field, **kwargs):
72 357d48dc Leonidas Poulopoulos
    #    if db_field.name == 'password':
73 357d48dc Leonidas Poulopoulos
    #        kwargs['widget'] = PasswordInput
74 357d48dc Leonidas Poulopoulos
    #    return db_field.formfield(**kwargs)
75 a24fbf37 Leonidas Poulopoulos
76 b10e01d6 Leonidas Poulopoulos
#admin.site.register(MatchAddress)
77 d50fd7b6 Leonidas Poulopoulos
admin.site.unregister(User)
78 a24fbf37 Leonidas Poulopoulos
admin.site.register(MatchPort)
79 a24fbf37 Leonidas Poulopoulos
admin.site.register(MatchDscp)
80 6ee21ffd Leonidas Poulopoulos
admin.site.register(UserProfile)
81 b10e01d6 Leonidas Poulopoulos
#admin.site.register(MatchFragmentType)
82 b10e01d6 Leonidas Poulopoulos
#admin.site.register(MatchIcmpCode)
83 b10e01d6 Leonidas Poulopoulos
#admin.site.register(MatchIcmpType)
84 b10e01d6 Leonidas Poulopoulos
#admin.site.register(MatchPacketLength)
85 b10e01d6 Leonidas Poulopoulos
#admin.site.register(MatchProtocol)
86 b10e01d6 Leonidas Poulopoulos
#admin.site.register(MatchTcpFlag)
87 a24fbf37 Leonidas Poulopoulos
admin.site.register(ThenAction)
88 b10e01d6 Leonidas Poulopoulos
#admin.site.register(ThenStatement)
89 b10e01d6 Leonidas Poulopoulos
#admin.site.register(MatchStatement)
90 1e02e391 Leonidas Poulopoulos
admin.site.register(Peer, PeerAdmin)
91 1e02e391 Leonidas Poulopoulos
admin.site.register(PeerTechc, PeerTechcAdmin)
92 d50fd7b6 Leonidas Poulopoulos
admin.site.register(Route, RouteAdmin)
93 d50fd7b6 Leonidas Poulopoulos
admin.site.register(User, UserProfileAdmin)
94 357d48dc Leonidas Poulopoulos
admin.site.disable_action('delete_selected')
95 357d48dc Leonidas Poulopoulos