Skip to content
Snippets Groups Projects
Commit 6ee21ffd authored by Leonidas Poulopoulos's avatar Leonidas Poulopoulos
Browse files

Added group view on initial page

parent 25d08a62
Branches
Tags
No related merge requests found
...@@ -5,7 +5,7 @@ from flowspy.peers.models import * ...@@ -5,7 +5,7 @@ from flowspy.peers.models import *
class UserProfile(models.Model): class UserProfile(models.Model):
user = models.OneToOneField(User) user = models.OneToOneField(User)
domain = models.ForeignKey(Peer) peer = models.ForeignKey(Peer)
def get_address_space(self): def get_address_space(self):
networks = self.domain.networks.all() networks = self.domain.networks.all()
......
from django.contrib import admin from django.contrib import admin
from flowspy.flowspec.models import * from flowspy.flowspec.models import *
from flowspy.accounts.models import *
from utils import proxy as PR from utils import proxy as PR
class RouteAdmin(admin.ModelAdmin): class RouteAdmin(admin.ModelAdmin):
...@@ -36,6 +37,7 @@ class RouteAdmin(admin.ModelAdmin): ...@@ -36,6 +37,7 @@ class RouteAdmin(admin.ModelAdmin):
#admin.site.register(MatchAddress) #admin.site.register(MatchAddress)
admin.site.register(MatchPort) admin.site.register(MatchPort)
admin.site.register(MatchDscp) admin.site.register(MatchDscp)
admin.site.register(UserProfile)
#admin.site.register(MatchFragmentType) #admin.site.register(MatchFragmentType)
#admin.site.register(MatchIcmpCode) #admin.site.register(MatchIcmpCode)
#admin.site.register(MatchIcmpType) #admin.site.register(MatchIcmpType)
......
...@@ -14,6 +14,7 @@ from django.template.loader import get_template ...@@ -14,6 +14,7 @@ from django.template.loader import get_template
from django.utils import simplejson from django.utils import simplejson
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib import messages from django.contrib import messages
from flowspy.accounts.models import *
from django.forms.models import model_to_dict from django.forms.models import model_to_dict
...@@ -32,6 +33,19 @@ def user_routes(request): ...@@ -32,6 +33,19 @@ def user_routes(request):
return render_to_response('user_routes.html', {'routes': user_routes}, return render_to_response('user_routes.html', {'routes': user_routes},
context_instance=RequestContext(request)) context_instance=RequestContext(request))
@login_required
def group_routes(request):
if request.user.is_anonymous():
return HttpResponseRedirect(reverse('login'))
peer = request.user.get_profile().peer
if peer:
peer_members = UserProfile.objects.filter(peer=peer)
users = [prof.user for prof in peer_members]
group_routes = Route.objects.filter(applier__in=users)
return render_to_response('user_routes.html', {'routes': group_routes},
context_instance=RequestContext(request))
@login_required @login_required
def add_route(request): def add_route(request):
if request.method == "GET": if request.method == "GET":
......
from django.db import models from django.db import models
from utils.whois import * from utils.whois import *
from django.contrib.auth.models import User
# Create your models here. # Create your models here.
class PeerRange(models.Model): class PeerRange(models.Model):
...@@ -15,8 +16,9 @@ class Peer(models.Model): ...@@ -15,8 +16,9 @@ class Peer(models.Model):
peer_name = models.CharField(max_length=128) peer_name = models.CharField(max_length=128)
peer_as = models.IntegerField() peer_as = models.IntegerField()
peer_tag = models.CharField(max_length=64) peer_tag = models.CharField(max_length=64)
domain_name = models.CharField(max_length=128) domain_name = models.CharField(max_length=128, null=True, blank=True)
networks = models.ManyToManyField(PeerRange, null=True, blank=True) networks = models.ManyToManyField(PeerRange, null=True, blank=True)
def __unicode__(self): def __unicode__(self):
return self.peer_name return self.peer_name
class Meta: class Meta:
...@@ -34,5 +36,3 @@ class Peer(models.Model): ...@@ -34,5 +36,3 @@ class Peer(models.Model):
self.save() self.save()
INSERT INTO `peer` (`peer_id`, `peer_name`, `peer_as`, `peer_tag`, `domain_name`) VALUES
(0, 'Εθνικό Δίκτυο Έρευνας και Τεχνολογίας', '5408', 'GRNET', 'grnet.gr'),
(1, 'Ανωτάτη Σχολή Καλών Τεχνών', '65079', 'ASFA', 'asfa.gr'),
(2, 'Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης', '5470', 'AUTH', 'auth.gr'),
(3, 'Γεωπονικό Πανεπιστήμιο Αθηνών', '65078', 'AUA', 'aua.gr'),
(4, 'Δημοκρίτειο Πανεπιστήμιο Θράκης', '8253', 'DUTH', 'duth.gr'),
(5, 'Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών', '8643', 'UOA', 'uoa.gr'),
(6, 'Εθνικό Μετσόβιο Πολυτεχνείο', '3323', 'NTUA', 'ntua.gr'),
(7, 'Ιόνιο Πανεπιστήμιο', '8618', 'IONIO', 'ionio.gr'),
(8, 'Οικονομικό Πανεπιστήμιο Αθηνών', '8611', 'AUEB', 'aueb.gr'),
(9, 'Πανεπιστήμιο Αιγαίου', '8617', 'AEGEAN', 'aegean.gr'),
(10, 'Πανεπιστήμιο Θεσσαλίας', '65077', 'UTH', 'uth.gr'),
(11, 'Πανεπιστήμιο Ιωαννίνων', '8581', 'UOI', 'uoi.gr'),
(12, 'Πανεπιστήμιο Κρήτης', '6867', 'UOC', 'uoc.gr'),
(13, 'Πανεπιστήμιο Μακεδονίας Οικονομικών και Κοινωνικών Επιστημών', '12364', 'UOM', 'uom.gr'),
(14, 'Πανεπιστήμιο Πατρών', '65024', 'UPATRAS', 'upatras'),
(15, 'Πανεπιστήμιο Πειραιά', '12402', 'UNIPI', 'unipi.gr'),
(16, 'Πάντειο Πανεπιστήμιο Κοινωνικών & Πολιτικών Επιστημών', '65088', 'PANTEION', 'panteion.gr'),
(17, 'Πολυτεχνείο Κρήτης', '8278', 'TUC', 'tuc.gr'),
(18, 'Σχολή Ικάρων', '65086', 'HAFA', 'hafa.gr'),
(19, 'Χαροκόπειο Πανεπιστήμιο', '65083', 'HUA', 'hua.gr'),
(20, 'ΤΕΙ Αθηνών', '9069', 'TEIATH', 'teiath.gr'),
(21, 'ΤΕΙ Ηπείρου', '65074', 'TEIEP', 'teiep.gr'),
(22, 'ΤΕΙ Κρήτης', '8762', 'TEICRETE', 'teiher.gr'),
(23, 'ΤΕΙ Θεσσαλονίκης', '5489', 'TEITHE', 'teithe.gr'),
(24, 'ΤΕΙ Καβάλας', '65073', 'TEIKAV', 'teikav.edu.gr'),
(25, 'ΤΕΙ Καλαμάτας', '65072', 'TEIKAL', 'teikal.gr'),
(26, 'ΤΕΙ Δυτικής Μακεδονίας', '65087', 'TEIKOZ', 'teikoz.gr'),
(27, 'ΤΕΙ Λαμίας', '65071', 'TEILAM', 'teilam.gr'),
(28, 'ΤΕΙ Λάρισας', '8700', 'TEILAR', 'teilar.gr'),
(29, 'ΤΕΙ Μεσολογγίου', '65070', 'TEIMES', 'teimes.gr'),
(30, 'ΤΕΙ Πάτρας', '20551', 'TEIPAT', 'teipat.gr'),
(31, 'ΤΕΙ Πειραιά', '65068', 'TEIPIR', 'teipir.gr'),
(32, 'ΤΕΙ Σερρών', '65067', 'TEISER', 'teiser.gr'),
(33, 'ΤΕΙ Χαλκίδας', '65081', 'TEIHAL', 'teihal.gr'),
(34, 'ΕΚΕΦΕ-Δημόκριτος', '2546', 'ARIADNET', 'ariadne-t.gr'),
(35, 'Γενική Γραμματεία Έρευνας και Τεχνολογίας', '65066', 'GSRT', 'gsrt.gr'),
(37, 'Εθνικό Κέντρο Τεκμηρίωσης-ΕΙΕ', '65075', 'EKT', 'ekt.gr'),
(38, 'Εθνικό Κέντρο Διαβήτη', '65065', 'HNDC', 'hndc.gr'),
(42, 'Ινστιτούτο Pasteur', '65085', 'PASTEUR', 'pasteur.gr'),
(43, 'Ίδρυμα Τεχνολογίας και Έρευνας', '8522', 'FORTH', 'forth.gr'),
(44, 'OTE - Συγκρότημα Εργαστηρίων Νέων Τεχνολογιών & Υπηρεσιών', '65089', 'OTERND', 'oteresearch.gr'),
(46, 'Κέντρο Ερευνών για Θέματα Ισότητας', '65084', 'KETHI', 'kethi.gr'),
(47, 'Εθνικό Ίδρυμα Ερευνών', '65075', 'EIE', 'eie.gr'),
(49, 'Ελληνικό Κέντρο Θαλασσίων Ερευνών', '65064', 'HCMR', 'hcmr.gr'),
(50, 'GR-IX - OTE', '6799', 'OTENET', 'OTENET.GR'),
(53, 'GR-IX - Forthnet', '1241', 'FORTHNET', 'FORTHNET.GR'),
(54, 'GR-IX - HOL', '3329', 'HOL', 'HOL.GR'),
(58, 'Πανελλήνιο Σχολικό Δίκτυο', '8248', 'SCH', 'sch.gr'),
(59, 'Διαχείριση ΕΔΕΤ', '65057', 'GRNETADM', 'admin.grnet.gr'),
(60, 'Ινστιτούτο Πολιτιστικής & Εκπαιδευτικής Τεχνολογίας', '65063', 'CETI', 'ceti.gr'),
(62, 'GR-IX - VODAFONE', '12361', 'VODAFONE', 'VODAFONE.GR'),
(63, 'ΕΚΕΤΑ - Ινστιτούτο Πληροφορικής και Τηλεματικής (ΙΠΤΗΛ)', '65051', 'IPTHL', 'iti.gr'),
(64, 'GR-IX - TELLAS', '25472', 'TELLAS', 'tellas.gr'),
(66, 'Κέντρο Ερευνών ΝΕΣΤΩΡ', '65060', 'NESTOR', 'nestor.org.gr'),
(69, 'Υπουργείο Παιδείας, Δια Βίου Μάθησης και Θρησκευμάτων', '65059', 'YPEPTH', 'ypepth.gr'),
(70, 'Εθνικό Αστεροσκοπείο Αθηνών', '15690', 'NOA', 'noa.gr'),
(71, 'ΕΙΧΗΜΥΘ', '15948', 'ICEHT', 'iceht.gr'),
(72, 'Ε.ΚΕ.ΒΕ "ΑΛΕΞΑΝΔΡΟΣ ΦΛΕΜΙΓΚ"', '65056', 'FLEMING', 'fleming.gr'),
(73, 'GR-IX - Wind', '15617', 'WIND', 'TELESTET.GR'),
(75, 'Ελληνικός Οργανισμός Τυποποίησης - ΕΛΟΤ', '65058', 'ELOT', 'elot.gr'),
(76, 'Οργανισμός Αντισεισμικού Σχεδιασμού και Προστασίας', '65055', 'OASP', 'oasp.gr'),
(78, 'Α.Σ.ΠΑΙ.Τ.Ε.', '65069', 'SELETE', 'aspete.gr'),
(79, 'Ελληνικό Ανοικτό Πανεπιστήμιο', '20813', 'EAP', 'eap.gr'),
(81, 'GEANT - European High Speed Research Network', '20965', 'GEANT', 'geant.net'),
(82, 'CEDEFOP - Ευρωπαϊκό Κέντρο για την Ανάπτυξη της Επαγγελματικής Κατάρτισης', '15536', 'CEDEFOP', 'cedefop.eu.int'),
(83, 'Διεθνές Κέντρο Δημόσιας Διοίκησης Θεσσαλονίκης - UNTC', '65054', 'UNTC', 'untcentre.org'),
(84, 'Βουλή των Ελλήνων', '65053', 'VOULI', 'parliament.gr'),
(86, 'Δίκτυο ΣΥΖΕΥΞΙΣ', '65052', 'SYZEYXIS', 'syzeyxis.gr'),
(87, 'GR-IX - NETONE', '9151', 'NETONE', 'netone.gr'),
(88, 'Πανεπιστήμιο Πελοποννήσου', '65049', 'UOP', 'uop.gr'),
(89, 'Ρυθμιστική Αρχή Ενέργειας - ΡΑΕ', '65050', 'RAE', 'rae.gr'),
(90, 'Κέντρο Ανανεώσιμων Πηγών Ενέργειας - ΚΑΠΕ', '65046', 'KAPE', 'cres.gr'),
(91, 'Ινστιτούτο Γεωλογικών & Μεταλλευτικών Ερευνών - ΙΓΜΕ', '65048', 'IGME', 'igme.gr'),
(92, 'Ίδρυμα Ευγενίδου', '65045', 'EVGENIDIO', 'eugenfound.edu.gr'),
(93, 'Ανώτατη Εκκλησιαστική Σχολή Θεσσαλονίκης', '65044', 'OIPP', 'oipp.gr'),
(94, 'Γεωργική & Βιοτεχνική Σχολή Θεσσαλονίκης', '65042', 'GEWRGIKH', 'afs.edu.gr'),
(95, 'Ακαδημία Αθηνών - Ίδρυμα Ιατροβιολογικών Ερευνών', '65043', 'IIBEAA', 'bioacademy.gr'),
(96, 'Ινστιτούτο Τεχνικής Σεισμολογίας & Αντισεισμικών Κατασκευών - ΙΤΣΑΚ', '65039', 'ITSAK', 'itsak.gr'),
(98, 'GR-IX - ORANGE (EQUANT)', '4004', 'ORANGE', 'orange-ftgroup.com'),
(99, 'GR-IX - VIVODI', '21284', 'VIVODI', 'vivodi.gr'),
(106, 'ΤΕΙ Ιονίων Νήσων', '65041', 'TEIION', 'teiion.gr'),
(108, 'Γενική Γραμματεία Εθνικής Στατιστικής Υπηρεσίας Ελλάδας', '65035', 'STAT', 'statistics.gr'),
(109, 'Στρατιωτική Σχολή Ευελπίδων/ΓΕΠ', '65033', 'SSE', 'sse.gr'),
(112, 'Σχολή Ναυτικών Δοκίμων', '65031', 'SND', 'snd.edu.gr, hna.gr'),
(113, 'Ινστιτούτο Έρευνας Μουσικής & Ακουστικής', '65032', 'IRMA', 'iema.gr'),
(114, 'Ελληνικό Ινστιτούτο Υγιεινής & Ασφάλειας της Εργασίας', '65030', 'ELINYAE', 'elinyae.gr'),
(116, 'Πανεπιστήμιο Δυτικής Μακεδονίας', '65029', 'UOWM', 'uowm.gr'),
(122, 'Υπηρεσία Φοιτητικού DSL - Δίκτυο Τερματισμού Συνδέσεων Χρηστών', '197121', 'EDUDSL', 'edudsl.gr'),
(123, 'Πανεπιστήμιο Στερεάς Ελλάδας', '65027', 'UCG', 'ucg.gr'),
(124, 'Υπηρεσία Φοιτητικού DSL "ΔΙΟΔΟΣ" - Υπηρεσία Μητρώου ΓΓΕΤ (Πληροφ. Σύστημα)', '65026', 'PSDIODOS', 'diodos.net.gr'),
(125, 'Αρχαιολογική Εταιρεία εν Αθήναις', '65025', 'ARCHET', 'archetai.gr'),
(126, 'Ακαδημία Αθηνών', '65016', 'ACADEMY', 'academyofathens.gr'),
(128, 'Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών', '6744', 'CTI', 'cti.gr'),
(130, 'Μεσογειακό Αγρονομικό Ινστιτούτο Χανίων', '65022', 'MAICH', 'maich.gr'),
(132, 'Ινστιτούτο Βιομηχανικών Συστημάτων', '65020', 'ISI', 'isi.gr'),
(134, 'Νόησις - Κέντρο Διάδοσης Επιστημών και Μουσείο Τεχνολογίας', '65018', 'NOESIS', 'tmth.edu.gr'),
(136, 'Ίδρυμα Κρατικών Υποτροφιών', '65019', 'IKY', 'IKYPD'),
(138, 'AS112 ΕΔΕΤ', '112', 'GRNET-AS112', NULL),
(139, 'K-Root server ΕΔΕΤ', '25152', 'GRNKROOT', NULL),
(140, 'Διεθνές Πανεπιστήμιο Ελλάδας', '65036', 'IHU', 'ihu.edu.gr'),
(141, 'ΕΚΕΤΑ - Εθνικό Κέντρο Έρευνας και Τεχνολογικής Ανάπτυξης', '47616', 'CERTH', 'certh.gr'),
(142, 'Αμερικανική Σχολή Κλασικών Σπουδών', '65017', 'ASCSA', 'Asca.edu.gr'),
(143, 'Εθνικό Οπτικοακουστικό Αρχείο', '65015', 'AVARCH', 'avarchive.gr'),
(144, 'Αμερικάνικο κολέγιο Ανατολία', '65014', 'ACT', 'Anatolia.edu.act.edu'),
(145, 'GR-IX - ON Telecoms', '41920', 'ONTELECM', 'ontelecoms.com'),
(146, 'GR-IX - CYTA', '6866', 'CYTA', NULL),
(148, 'Ινστιτούτο Επεξεργασίας Λόγου', '65082', 'ILSP', 'ilsp.gr'),
(149, 'Hellas Grid (HG)', '65037', 'HG', 'hellasgrid.gr'),
(150, 'Google', '15169', 'GOOGLE', 'google.com'),
(151, 'EGV', '50555', 'EGV', 'opengov.gr'),
(152, 'RIPE', '3333', 'RIPE', 'ripe.net'),
(160, 'Ανώτερη Σχολή Τουριστικής Εκπαίδευσης (ΡΟΔΟΣ)', '65012', 'ASTER', 'aster.edu.gr'),
(162, 'Σχολή Μονίμων Υπαξιωματικών', '65013', 'SMY', NULL),
(166, 'GR-IX - Verizon', '702', 'VERIZON', NULL),
(167, 'Πανεπιστήμιο Δυτικής Ελλάδας', '65034', 'UWG', 'uwg.edu.gr'),
(170, 'Ανωτάτη Διακλαδική Σχολή Πολέμου - ΑΔΙΣΠΟ', '65038', 'ADISPO', 'adispo.gr'),
(171, 'Ινστιτούτο Πληροφοριακών Συστημάτων και Προσoμοίωσης (ΙΠΣΥΠ/IMIS)', '65011', 'IMIS', NULL);
...@@ -112,6 +112,7 @@ function delete_route(route){ ...@@ -112,6 +112,7 @@ function delete_route(route){
<th style="text-align: center;">{% trans "Then" %}</th> <th style="text-align: center;">{% trans "Then" %}</th>
<th style="text-align: center;">{% trans "Status" %}</th> <th style="text-align: center;">{% trans "Status" %}</th>
{% comment %}<th style="text-align: center;">{% trans "Details" %}</th>{% endcomment %} {% comment %}<th style="text-align: center;">{% trans "Details" %}</th>{% endcomment %}
<th style="text-align: center;">{% trans "Applier" %}</th>
<th style="text-align: center;">{% trans "Expires" %}</th> <th style="text-align: center;">{% trans "Expires" %}</th>
<th style="text-align: center;">{% trans "Response" %}</th> <th style="text-align: center;">{% trans "Response" %}</th>
<th style="text-align: center; width:120px;">{% trans "Actions" %}</th> <th style="text-align: center; width:120px;">{% trans "Actions" %}</th>
...@@ -127,6 +128,7 @@ function delete_route(route){ ...@@ -127,6 +128,7 @@ function delete_route(route){
<td style="text-align: center;">{{route.get_then|safe|escape}}</td> <td style="text-align: center;">{{route.get_then|safe|escape}}</td>
<td style="text-align: center;">{% if route.is_online %}Online{% else %}Offline{% endif %}</td> <td style="text-align: center;">{% if route.is_online %}Online{% else %}Offline{% endif %}</td>
{% comment %}<td style="text-align: center;">{{ route.response }}</td>{% endcomment %} {% comment %}<td style="text-align: center;">{{ route.response }}</td>{% endcomment %}
<td style="text-align: center;">{{ route.applier }}</td>
<td style="text-align: center;">{{ route.expires }}</td> <td style="text-align: center;">{{ route.expires }}</td>
<td style="text-align: center;">{{ route.response }}</td> <td style="text-align: center;">{{ route.response }}</td>
<td style="text-align: center;"> <td style="text-align: center;">
......
...@@ -8,7 +8,7 @@ urlpatterns = patterns('', ...@@ -8,7 +8,7 @@ urlpatterns = patterns('',
# Example: # Example:
# (r'^flowspy/', include('flowspy.foo.urls')), # (r'^flowspy/', include('flowspy.foo.urls')),
(r'^poll/', include('flowspy.poller.urls')), (r'^poll/', include('flowspy.poller.urls')),
url(r'^/?$', 'flowspy.flowspec.views.user_routes', name="user-routes"), url(r'^/?$', 'flowspy.flowspec.views.group_routes', name="group-routes"),
url(r'^add/?$', 'flowspy.flowspec.views.add_route', name="add-route"), url(r'^add/?$', 'flowspy.flowspec.views.add_route', name="add-route"),
url(r'^edit/(?P<route_slug>\w+)/$', 'flowspy.flowspec.views.edit_route', name="edit-route"), url(r'^edit/(?P<route_slug>\w+)/$', 'flowspy.flowspec.views.edit_route', name="edit-route"),
url(r'^delete/(?P<route_slug>\w+)/$', 'flowspy.flowspec.views.delete_route', name="delete-route"), url(r'^delete/(?P<route_slug>\w+)/$', 'flowspy.flowspec.views.delete_route', name="delete-route"),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment