Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Fukász Rómeó Ervin
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
Commit
753384aa
authored
Jun 05, 2014
by
Kálmán Viktor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
network: vlan acl
parent
a9f165ca
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
99 additions
and
6 deletions
+99
-6
circle/network/static/js/network.js
+4
-0
circle/network/static/network/network.css
+8
-0
circle/network/templates/network/base.html
+1
-1
circle/network/templates/network/vlan-edit.html
+65
-4
circle/network/urls.py
+4
-1
circle/network/views.py
+17
-0
No files found.
circle/network/static/js/network.js
View file @
753384aa
...
...
@@ -27,3 +27,7 @@ function getURLParameter(name) {
(
RegExp
(
name
+
'='
+
'(.+?)(&|$)'
).
exec
(
location
.
search
)
||
[,
null
])[
1
]
);
}
$
(
function
()
{
$
(
"[title]"
).
tooltip
();
});
circle/network/static/network/network.css
0 → 100644
View file @
753384aa
.table-with-form-fields
tbody
tr
td
{
line-height
:
34px
;
}
#vlan-access-table
th
:last-child
,
#vlan-access-table
td
:last-child
{
text-align
:
center
;
}
circle/network/templates/network/base.html
View file @
753384aa
...
...
@@ -12,6 +12,7 @@
<link
rel=
"stylesheet"
href=
"//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"
>
<link
rel=
"stylesheet"
href=
"//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css"
>
<link
href=
"//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css"
rel=
"stylesheet"
/>
<link
href=
"{% static "
network
/
network
.
css
"
%}"
rel=
"stylesheet"
>
<style
type=
"text/css"
>
body
{
padding-top
:
40px
;
...
...
@@ -35,7 +36,6 @@
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--<link href="{% static "css/network.css" %}" rel="stylesheet">-->
{% block extra_css %}{% endblock %}
</head>
<body>
...
...
circle/network/templates/network/vlan-edit.html
View file @
753384aa
...
...
@@ -12,11 +12,72 @@
</div>
<div
class=
"row"
>
<div
class=
"col-sm-8"
>
{% crispy form %}
<div
class=
"col-sm-6"
>
{% crispy form %}
</div>
<div
class=
"col-sm-6"
>
<div
class=
"page-header"
>
<h3>
{% trans "Host list" %}
</h3>
</div>
<div
class=
"col-sm-4"
>
{% render_table host_list %}
{% render_table host_list %}
<div
class=
"page-header"
>
<h3>
{% trans "Manage access" %}
</h3>
</div>
<form
action=
"{% url "
network
.
vlan-acl
"
vid=
vlan_vid
%}"
method=
"post"
>
{% csrf_token %}
<table
class=
"table table-striped table-with-form-fields"
id=
"vlan-access-table"
>
<thead>
<tr>
<th></th>
<th>
{% trans "Who" %}
</th>
<th>
{% trans "What" %}
</th>
<th><i
class=
"icon-remove"
></i></th>
</tr></thead>
<tbody>
{% for i in acl.users %}
<tr>
<td><i
class=
"icon-user"
></i></td><td>
{{i.user}}
</td>
<td>
<select
class=
"form-control"
name=
"perm-u-{{i.user.id}}"
>
{% for id, name in acl.levels %}
<option
{%
if
id =
i.level%}
selected=
"selected"
{%
endif
%}
value=
"{{id}}"
>
{{name}}
</option>
{% endfor %}
</select>
</td>
<td>
<input
type=
"checkbox"
name=
"remove-u-{{i.user.id}}"
title=
"{% trans "
Remove
"
%}"
/>
</td>
</tr>
{% endfor %}
{% for i in acl.groups %}
<tr>
<td><i
class=
"icon-group"
></i></td><td>
{{i.group}}
</td>
<td>
<select
class=
"form-control"
name=
"perm-g-{{i.group.id}}"
>
{% for id, name in acl.levels %}
<option
{%
if
id =
i.level%}
selected=
"selected"
{%
endif
%}
value=
"{{id}}"
>
{{name}}
</option>
{% endfor %}
</select>
</td>
<td>
<input
type=
"checkbox"
name=
"remove-g-{{i.group.id}}"
title=
"{% trans "
Remove
"
%}"
/>
</td>
</tr>
{% endfor %}
<tr><td><i
class=
"icon-plus"
></i></td>
<td><input
type=
"text"
class=
"form-control"
name=
"perm-new-name"
placeholder=
"{% trans "
Name
of
group
or
user
"
%}"
></td>
<td><select
class=
"form-control"
name=
"perm-new"
>
{% for id, name in acl.levels %}
<option
value=
"{{id}}"
>
{{name}}
</option>
{% endfor %}
</select></td><td></td>
</tr>
</tbody>
</table>
<div
class=
"form-actions"
>
<button
type=
"submit"
class=
"btn btn-success"
>
{% trans "Save" %}
</button>
</div>
</form>
</div>
</div>
{% endblock %}
circle/network/urls.py
View file @
753384aa
...
...
@@ -30,7 +30,8 @@ from .views import (IndexView,
VlanGroupList
,
VlanGroupDetail
,
VlanGroupDelete
,
VlanGroupCreate
,
remove_host_group
,
add_host_group
,
remove_switch_port_device
,
add_switch_port_device
)
remove_switch_port_device
,
add_switch_port_device
,
VlanAclUpdateView
)
urlpatterns
=
patterns
(
''
,
...
...
@@ -83,6 +84,8 @@ urlpatterns = patterns(
url
(
'^vlans/$'
,
VlanList
.
as_view
(),
name
=
'network.vlan_list'
),
url
(
'^vlans/create$'
,
VlanCreate
.
as_view
(),
name
=
'network.vlan_create'
),
url
(
'^vlans/(?P<vid>
\
d+)/$'
,
VlanDetail
.
as_view
(),
name
=
'network.vlan'
),
url
(
'^vlans/(?P<vid>
\
d+)/acl/$'
,
VlanAclUpdateView
.
as_view
(),
name
=
'network.vlan-acl'
),
url
(
'^vlans/delete/(?P<vid>
\
d+)/$'
,
VlanDelete
.
as_view
(),
name
=
"network.vlan_delete"
),
url
(
'^vlangroups/$'
,
VlanGroupList
.
as_view
(),
...
...
circle/network/views.py
View file @
753384aa
...
...
@@ -41,6 +41,7 @@ from braces.views import LoginRequiredMixin, SuperuserRequiredMixin
from
operator
import
itemgetter
from
itertools
import
chain
import
json
from
dashboard.views
import
AclUpdateView
class
SuccessMessageMixin
(
FormMixin
):
...
...
@@ -628,6 +629,21 @@ class VlanList(LoginRequiredMixin, SuperuserRequiredMixin, SingleTableView):
table_pagination
=
False
def
get_vlan_acl_data
(
obj
):
levels
=
obj
.
ACL_LEVELS
users
=
obj
.
get_users_with_level
()
users
=
[{
'user'
:
u
,
'level'
:
l
}
for
u
,
l
in
users
]
groups
=
obj
.
get_groups_with_level
()
groups
=
[{
'group'
:
g
,
'level'
:
l
}
for
g
,
l
in
groups
]
return
{
'users'
:
users
,
'groups'
:
groups
,
'levels'
:
levels
}
class
VlanAclUpdateView
(
AclUpdateView
):
model
=
Vlan
slug_field
=
"vid"
slug_url_kwarg
=
"vid"
class
VlanDetail
(
LoginRequiredMixin
,
SuperuserRequiredMixin
,
SuccessMessageMixin
,
UpdateView
):
model
=
Vlan
...
...
@@ -646,6 +662,7 @@ class VlanDetail(LoginRequiredMixin, SuperuserRequiredMixin,
context
[
'host_list'
]
=
SmallHostTable
(
q
)
context
[
'vlan_vid'
]
=
self
.
kwargs
.
get
(
'vid'
)
context
[
'acl'
]
=
get_vlan_acl_data
(
self
.
get_object
())
return
context
success_url
=
reverse_lazy
(
'network.vlan_list'
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment