aboutsummaryrefslogtreecommitdiffstats
path: root/packages/torouter-web/tui/controllers/network.py
blob: 33e7f272388df75b7dc4e1170840dd29ef5fed98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import web
import view, config
from view import render

"""
This function is used to generate the network
submenus.
"""
def menu(n):
  a = [] 
  for i in range(0,5):
    if i == n:
      a.append("sel")
    else:
      a.append("")
  print a
  return """<ul>
  <li><a href="/network" class="%s">Main</a></li>
  <li><a href="/network/firewall" class="%s">Firewall</a></li>
  <li><a href="/network/wireless" class="%s">Wireless</a></li>
  <li><a href="/network/wired" class="%s">Wired</a></li>
  <li><a href="/network/status" class="%s">Status</a></li>
</ul>
""" % tuple(a)

"""
The main page for network configuration
"""
class main:
  def GET(self):
    return render.base(render.main(),menu(0))

  def POST(self):
    return render.base(render.main(),menu(0))

"""
The firewall configuration page
"""
class firewall:
  def GET(self):
    return render.base(render.firewall(),menu(1))

  def POST(self):
    return render.base(render.firewall(),menu(1))

"""
Wireless network configuration page
"""
class wireless:
  def get_current_config(self):
    conf = {'essid' : None, 'encryption' : None, 'key' : None}
    
    # XXX Dummy default config for testing purposes
    #     plugin here the actual code for config retreival
    conf['essid'] = "Torouter"
    conf['encryption'] = "WPA2"
    conf['key'] = "ljdasjkbcuBH12389Ba"
    

    return conf

  def build_form(self):
    c = self.get_current_config()
    ret_form = web.form.Form(
      web.form.Textbox(name='essid', 
        description='Wireless ESSID', value=c['essid']),
      web.form.Dropdown(name='enctype', args=['WPA2', 'WPA', 'WEP (not reccomended)', 'open'],
        description='Wireless encryption scheme', value=c['encryption']),
      web.form.Password(name='key',
        description='key', value=c['key']),
      web.form.Button('save')
    )
    self.form = ret_form
    
    return True
  
  def update_config(self, data):
    return True

  def GET(self):
    if self.build_form():
      return render.base(render.wireless(self.form()),menu(2))

  def POST(self):
    self.update_config(None)
    print web.input()
    return render.base(render.saved(web.input()),menu(2))

"""
Wired network configuration page
"""
class wired:
  def GET(self):
    return render.base(render.wired(),menu(3))

  def POST(self):
    return render.base(render.wired(),menu(3))

"""
General status page, displays a bit more detail than main
"""
class status:
  def GET(self):
    return render.base(render.status(),menu(4))

  def POST(self):
    return render.base(render.status(),menu(4))