|
|
@ -11,7 +11,7 @@ from djing.settings import DEBUG |
|
|
import re |
|
|
import re |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#DEBUG=False |
|
|
|
|
|
|
|
|
#DEBUG=True |
|
|
|
|
|
|
|
|
LIST_USERS_ALLOWED = 'DjingUsersAllowed' |
|
|
LIST_USERS_ALLOWED = 'DjingUsersAllowed' |
|
|
LIST_USERS_BLOCKED = 'DjingUsersBlocked' |
|
|
LIST_USERS_BLOCKED = 'DjingUsersBlocked' |
|
|
@ -236,7 +236,7 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta): |
|
|
assert isinstance(user, AbonStruct) |
|
|
assert isinstance(user, AbonStruct) |
|
|
q = self.find('uid%d' % user.uid) |
|
|
q = self.find('uid%d' % user.uid) |
|
|
if q is not None: |
|
|
if q is not None: |
|
|
return self._exec_cmd(['/queue/simple/remove', '=.id=*' + getattr(q, 'queue_id', '')]) |
|
|
|
|
|
|
|
|
return self._exec_cmd(['/queue/simple/remove', '=.id=' + getattr(q, 'queue_id', '')]) |
|
|
|
|
|
|
|
|
def remove_range(self, q_ids): |
|
|
def remove_range(self, q_ids): |
|
|
if q_ids is not None and len(q_ids) > 0: |
|
|
if q_ids is not None and len(q_ids) > 0: |
|
|
@ -253,7 +253,7 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta): |
|
|
else: |
|
|
else: |
|
|
mk_id = getattr(queue, 'queue_id', '') |
|
|
mk_id = getattr(queue, 'queue_id', '') |
|
|
# обновляем шейпер абонента |
|
|
# обновляем шейпер абонента |
|
|
return self._exec_cmd(['/queue/simple/set', '=.id=*' + mk_id, |
|
|
|
|
|
|
|
|
return self._exec_cmd(['/queue/simple/set', '=.id=' + mk_id, |
|
|
'=name=uid%d' % user.uid, |
|
|
'=name=uid%d' % user.uid, |
|
|
'=max-limit=%.3fM/%.3fM' % (user.tariff.speedOut, user.tariff.speedIn), |
|
|
'=max-limit=%.3fM/%.3fM' % (user.tariff.speedOut, user.tariff.speedIn), |
|
|
# FIXME: тут в разных микротиках или =target-addresses или =target |
|
|
# FIXME: тут в разных микротиках или =target-addresses или =target |
|
|
@ -375,8 +375,7 @@ class MikrotikTransmitter(QueueManager, IpAddressListManager): |
|
|
|
|
|
|
|
|
def add_user_range(self, user_list): |
|
|
def add_user_range(self, user_list): |
|
|
for usr in user_list: |
|
|
for usr in user_list: |
|
|
if hasattr(usr, 'is_dhcp') and not usr.is_dhcp(): |
|
|
|
|
|
self.add_user(usr) |
|
|
|
|
|
|
|
|
self.add_user(usr) |
|
|
|
|
|
|
|
|
def remove_user_range(self, users): |
|
|
def remove_user_range(self, users): |
|
|
queue_ids = [usr.queue_id for usr in users if usr is not None] |
|
|
queue_ids = [usr.queue_id for usr in users if usr is not None] |
|
|
@ -391,8 +390,6 @@ class MikrotikTransmitter(QueueManager, IpAddressListManager): |
|
|
assert isinstance(user.ip, IpStruct) |
|
|
assert isinstance(user.ip, IpStruct) |
|
|
if user.tariff is None or not isinstance(user.tariff, TariffStruct): |
|
|
if user.tariff is None or not isinstance(user.tariff, TariffStruct): |
|
|
return |
|
|
return |
|
|
if not user.is_access(): |
|
|
|
|
|
return |
|
|
|
|
|
QueueManager.add(self, user) |
|
|
QueueManager.add(self, user) |
|
|
IpAddressListManager.add(self, LIST_USERS_ALLOWED, user.ip, ip_timeout) |
|
|
IpAddressListManager.add(self, LIST_USERS_ALLOWED, user.ip, ip_timeout) |
|
|
# удаляем из списка заблокированных абонентов |
|
|
# удаляем из списка заблокированных абонентов |
|
|
|