diff --git a/gw_app/locale/ru/LC_MESSAGES/django.po b/gw_app/locale/ru/LC_MESSAGES/django.po index f6f3689..d25f558 100644 --- a/gw_app/locale/ru/LC_MESSAGES/django.po +++ b/gw_app/locale/ru/LC_MESSAGES/django.po @@ -157,3 +157,9 @@ msgstr "Убедитесь что значение меньше или равн msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s с таким %(field_label)s уже существует." + +msgid "Enabled" +msgstr "Включен" + +msgid "Gateway disabled" +msgstr "Шлюз выключен" diff --git a/gw_app/migrations/0003_nasmodel_enabled.py b/gw_app/migrations/0003_nasmodel_enabled.py new file mode 100644 index 0000000..026d150 --- /dev/null +++ b/gw_app/migrations/0003_nasmodel_enabled.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1 on 2018-11-15 13:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('gw_app', '0002_auto_20181101_1545'), + ] + + operations = [ + migrations.AddField( + model_name='nasmodel', + name='enabled', + field=models.BooleanField(default=True, verbose_name='Enabled'), + ), + ] diff --git a/gw_app/models.py b/gw_app/models.py index 78793d3..217bb68 100644 --- a/gw_app/models.py +++ b/gw_app/models.py @@ -16,6 +16,7 @@ class NASModel(models.Model): auth_passw = models.CharField(_('Auth password'), max_length=127) nas_type = models.CharField(_('Type'), max_length=4, choices=MyChoicesAdapter(NAS_TYPES), default=NAS_TYPES[0][0]) default = models.BooleanField(_('Is default'), default=False) + enabled = models.BooleanField(_('Enabled'), default=True) def get_nas_manager_klass(self): try: @@ -32,7 +33,8 @@ class NASModel(models.Model): login=self.auth_login, password=self.auth_passw, ip=self.ip_address, - port=int(self.ip_port) + port=int(self.ip_port), + enabled=bool(self.enabled) ) setattr(self, '_nas_mngr', o) return o diff --git a/gw_app/nas_managers/mod_mikrotik.py b/gw_app/nas_managers/mod_mikrotik.py index e596dbc..961fcdd 100644 --- a/gw_app/nas_managers/mod_mikrotik.py +++ b/gw_app/nas_managers/mod_mikrotik.py @@ -170,14 +170,17 @@ class MikrotikTransmitter(core.BaseTransmitter, ApiRos, (ABCMeta, LazyInitMetaclass), {})): description = _('Mikrotik NAS') - def __init__(self, login: str, password: str, ip: str, port: int, *args, - **kwargs): + def __init__(self, login: str, password: str, ip: str, port: int, + enabled: bool, *args, **kwargs): + if not enabled: + raise core.NasFailedResult(_('Gateway disabled')) try: - core.BaseTransmitter.__init__(self, - login=login, password=password, - ip=ip, - port=port, *args, **kwargs - ) + core.BaseTransmitter.__init__( + self, login=login, + password=password, + ip=ip, port=port, + *args, **kwargs + ) ApiRos.__init__(self, ip, port) self.login(username=login, pwd=password) except ConnectionRefusedError: diff --git a/gw_app/templates/gw_app/nasmodel_list.html b/gw_app/templates/gw_app/nasmodel_list.html index af377ed..c641673 100644 --- a/gw_app/templates/gw_app/nasmodel_list.html +++ b/gw_app/templates/gw_app/nasmodel_list.html @@ -18,11 +18,10 @@