Browse Source

little refactoring

devel
bashmak 8 years ago
parent
commit
9b2fece608
  1. 7
      abonapp/templates/abonapp/buy_tariff.html
  2. 1
      agent/__init__.py
  3. 2
      agent/core.py
  4. 10
      djing/global_base_views.py
  5. 6
      ip_pool/views.py
  6. 1
      searchapp/templates/searchapp/index.html

7
abonapp/templates/abonapp/buy_tariff.html

@ -1,7 +1,7 @@
{% extends request.is_ajax|yesno:'bajax.html,base.html' %} {% extends request.is_ajax|yesno:'bajax.html,base.html' %}
{% load i18n %} {% load i18n %}
{% block main %}
{% block breadcrumb %}
<ol class="breadcrumb"> <ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li> <li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abonapp:group_list' %}">{% trans 'User groups' %}</a></li> <li><a href="{% url 'abonapp:group_list' %}">{% trans 'User groups' %}</a></li>
@ -9,8 +9,11 @@
<li><a href="{% url 'abonapp:abon_home' group.pk abon.username %}">{{ abon.fio }}</a></li> <li><a href="{% url 'abonapp:abon_home' group.pk abon.username %}">{{ abon.fio }}</a></li>
<li class="active">{% trans 'Pick a service' %}</li> <li class="active">{% trans 'Pick a service' %}</li>
</ol> </ol>
{% endblock %}
{% include 'message_block.html' %}
{% block page-header %}{% trans 'Pick a service' %}{% endblock %}
{% block main %}
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">

1
agent/__init__.py

@ -6,4 +6,5 @@ from .structs import TariffStruct, AbonStruct
# Transmitter мы будем импортировать в других местах # Transmitter мы будем импортировать в других местах
# Тут надо указать какой у нас будет NAS # Тут надо указать какой у нас будет NAS
# т.е. какой класс будет управлять доступом в интернет # т.е. какой класс будет управлять доступом в интернет
# TODO: Transmitter can be lazy init
Transmitter = MikrotikTransmitter Transmitter = MikrotikTransmitter

2
agent/core.py

@ -82,7 +82,7 @@ class BaseTransmitter(metaclass=ABCMeta):
:param users_from_db: QuerySet of all subscribers that can have service :param users_from_db: QuerySet of all subscribers that can have service
:return: Tuple of 2 lists that contain list to add users and list to remove users :return: Tuple of 2 lists that contain list to add users and list to remove users
""" """
users_struct_list = [ab.build_agent_struct() for ab in users_from_db if ab.is_access()]
users_struct_list = (ab.build_agent_struct() for ab in users_from_db if ab.is_access())
users_struct_set = set([ab for ab in users_struct_list if ab is not None and ab.tariff is not None]) users_struct_set = set([ab for ab in users_struct_list if ab is not None and ab.tariff is not None])
users_from_nas = set(self.read_users()) users_from_nas = set(self.read_users())
list_for_del = (users_struct_set ^ users_from_nas) - users_struct_set list_for_del = (users_struct_set ^ users_from_nas) - users_struct_set

10
djing/global_base_views.py

@ -1,3 +1,4 @@
from ipaddress import ip_address, ip_network
from json import dumps from json import dumps
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
@ -6,7 +7,6 @@ from django.http.response import HttpResponseForbidden, Http404, HttpResponseRed
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.conf import settings from django.conf import settings
from django.views.generic import ListView from django.views.generic import ListView
from netaddr import IPNetwork, IPAddress
from django.core.paginator import InvalidPage, EmptyPage from django.core.paginator import InvalidPage, EmptyPage
from djing.lib.decorators import hash_auth_view from djing.lib.decorators import hash_auth_view
@ -50,17 +50,17 @@ class AllowedSubnetMixin(object):
Check if user ip in allowed subnet. Check if user ip in allowed subnet.
Return 403 denied otherwise. Return 403 denied otherwise.
""" """
ip = IPAddress(request.META.get('REMOTE_ADDR'))
ip = ip_address(request.META.get('REMOTE_ADDR'))
api_auth_subnet = getattr(settings, 'API_AUTH_SUBNET') api_auth_subnet = getattr(settings, 'API_AUTH_SUBNET')
if type(api_auth_subnet) is str: if type(api_auth_subnet) is str:
if ip in IPNetwork(api_auth_subnet):
if ip in ip_network(api_auth_subnet):
return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs) return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs)
try: try:
for subnet in api_auth_subnet: for subnet in api_auth_subnet:
if ip in IPNetwork(subnet):
if ip in ip_network(subnet):
return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs) return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs)
except TypeError: except TypeError:
if ip in IPNetwork(str(api_auth_subnet)):
if ip in ip_network(str(api_auth_subnet)):
return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs) return super(AllowedSubnetMixin, self).dispatch(request, *args, **kwargs)
return HttpResponseForbidden('Access Denied') return HttpResponseForbidden('Access Denied')

6
ip_pool/views.py

@ -39,9 +39,9 @@ class NetworkUpdateView(UpdateView):
@method_decorator(login_required, name='dispatch') @method_decorator(login_required, name='dispatch')
class IpEmployedListView(BaseOrderedFilteringList):
template_name = 'ip_pool/employed_ip_list.html'
model = models.EmployedIpModel
class IpLeasesListView(BaseOrderedFilteringList):
template_name = 'ip_pool/ip_leases_list.html'
model = models.IpLeaseModel
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
net_id = self.kwargs.get('net_id') net_id = self.kwargs.get('net_id')

1
searchapp/templates/searchapp/index.html

@ -8,6 +8,7 @@
</ol> </ol>
{% endblock %} {% endblock %}
{% block page-header %}{% trans 'Search' %}{% endblock %}
{% block main %} {% block main %}
<div class="panel panel-default"> <div class="panel panel-default">

Loading…
Cancel
Save