diff --git a/apps/accounts/automations/push_account/manager.py b/apps/accounts/automations/push_account/manager.py index 13e30b9bb..293a42967 100644 --- a/apps/accounts/automations/push_account/manager.py +++ b/apps/accounts/automations/push_account/manager.py @@ -40,9 +40,8 @@ class PushAccountManager(PushOrVerifyHostCallbackMixin, AccountBasePlaybookManag logger.debug(f'not privilege account') return [] snapshot_account_usernames = self.execution.snapshot['accounts'] - accounts = accounts.exclude(username=privilege_account.username) if '*' in snapshot_account_usernames: - return accounts + return accounts.exclude(username=privilege_account.username) asset = privilege_account.asset self.create_nonlocal_accounts(accounts, snapshot_account_usernames, asset) diff --git a/apps/assets/migrations/0042_favoriteasset.py b/apps/assets/migrations/0042_favoriteasset.py index 3baebee74..a09759e26 100644 --- a/apps/assets/migrations/0042_favoriteasset.py +++ b/apps/assets/migrations/0042_favoriteasset.py @@ -26,6 +26,7 @@ class Migration(migrations.Migration): ], options={ 'unique_together': {('user', 'asset')}, + 'verbose_name': 'Favorite asset', }, ), ] diff --git a/apps/assets/migrations/0098_auto_20220430_2126.py b/apps/assets/migrations/0098_auto_20220430_2126.py index d3eab6855..89a168316 100644 --- a/apps/assets/migrations/0098_auto_20220430_2126.py +++ b/apps/assets/migrations/0098_auto_20220430_2126.py @@ -64,7 +64,7 @@ def migrate_cloud_to_asset(apps, *args): cloud = cloud_model( id=app.id, name=app.name, address=attrs.get('cluster', ''), - protocols='', platform=platform, + protocols='k8s/443', platform=platform, org_id=app.org_id, ) diff --git a/apps/assets/migrations/0107_automation.py b/apps/assets/migrations/0107_automation.py index 5711481e7..38bb777e4 100644 --- a/apps/assets/migrations/0107_automation.py +++ b/apps/assets/migrations/0107_automation.py @@ -88,4 +88,23 @@ class Migration(migrations.Migration): }, bases=('assets.assetbaseautomation',), ), - ] + migrations.AlterField( + model_name='automationexecution', + name='automation', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='executions', to='assets.baseautomation', verbose_name='Automation task'), + ), + migrations.AlterUniqueTogether( + name='baseautomation', + unique_together={('org_id', 'name', 'type')}, + ), + migrations.AlterModelOptions( + name='asset', + options={'ordering': ['name'], + 'permissions': [('refresh_assethardwareinfo', 'Can refresh asset hardware info'), + ('test_assetconnectivity', 'Can test asset connectivity'), + ('push_assetaccount', 'Can push account to asset'), + ('test_account', 'Can verify account'), ('match_asset', 'Can match asset'), + ('add_assettonode', 'Add asset to node'), + ('move_assettonode', 'Move asset to node')], 'verbose_name': 'Asset'}, + ), +] diff --git a/apps/assets/migrations/0108_alter_automationexecution_automation.py b/apps/assets/migrations/0108_alter_automationexecution_automation.py deleted file mode 100644 index 7fa692b2b..000000000 --- a/apps/assets/migrations/0108_alter_automationexecution_automation.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 3.2.16 on 2023-01-05 06:55 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('assets', '0107_automation'), - ] - - operations = [ - migrations.AlterField( - model_name='automationexecution', - name='automation', - field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='executions', to='assets.baseautomation', verbose_name='Automation task'), - ), - ] diff --git a/apps/assets/migrations/0109_alter_baseautomation_unique_together.py b/apps/assets/migrations/0109_alter_baseautomation_unique_together.py deleted file mode 100644 index a1d141585..000000000 --- a/apps/assets/migrations/0109_alter_baseautomation_unique_together.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 3.2.16 on 2023-01-06 07:07 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('assets', '0108_alter_automationexecution_automation'), - ] - - operations = [ - migrations.AlterUniqueTogether( - name='baseautomation', - unique_together={('org_id', 'name', 'type')}, - ), - migrations.AlterModelOptions( - name='asset', - options={'ordering': ['name'], - 'permissions': [('refresh_assethardwareinfo', 'Can refresh asset hardware info'), - ('test_assetconnectivity', 'Can test asset connectivity'), - ('push_assetaccount', 'Can push account to asset'), - ('test_account', 'Can verify account'), ('match_asset', 'Can match asset'), - ('add_assettonode', 'Add asset to node'), - ('move_assettonode', 'Move asset to node')], 'verbose_name': 'Asset'}, - ), - ] diff --git a/apps/assets/migrations/0110_alter_favoriteasset_options.py b/apps/assets/migrations/0110_alter_favoriteasset_options.py deleted file mode 100644 index 0aec8be61..000000000 --- a/apps/assets/migrations/0110_alter_favoriteasset_options.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 3.2.16 on 2023-01-10 06:45 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('assets', '0109_alter_baseautomation_unique_together'), - ] - - operations = [ - migrations.AlterModelOptions( - name='favoriteasset', - options={'verbose_name': 'Favorite Asset'}, - ), - ] diff --git a/apps/assets/models/favorite_asset.py b/apps/assets/models/favorite_asset.py index 86d64bbe1..92d52fe7f 100644 --- a/apps/assets/models/favorite_asset.py +++ b/apps/assets/models/favorite_asset.py @@ -14,7 +14,7 @@ class FavoriteAsset(JMSBaseModel): class Meta: unique_together = ('user', 'asset') - verbose_name = _("Favorite Asset") + verbose_name = _("Favorite asset") @classmethod def get_user_favorite_asset_ids(cls, user): diff --git a/apps/static/js/jumpserver.js b/apps/static/js/jumpserver.js index b6bb6c6a4..d78cccb74 100644 --- a/apps/static/js/jumpserver.js +++ b/apps/static/js/jumpserver.js @@ -126,7 +126,9 @@ function csrfSafeMethod(method) { function setAjaxCSRFToken() { let prefix = getCookie('SESSION_COOKIE_NAME_PREFIX'); - if (!prefix || [`""`, `''`].indexOf(prefix) > -1) { prefix = ''; } + if (!prefix || [`""`, `''`].indexOf(prefix) > -1) { + prefix = ''; + } var csrftoken = getCookie(`${prefix}csrftoken`); var sessionid = getCookie(`${prefix}sessionid`); @@ -267,7 +269,7 @@ function requestApi(props) { flash_message = false; } var dataBody = props.body || props.data; - if (typeof(dataBody) === "object") { + if (typeof (dataBody) === "object") { dataBody = JSON.stringify(dataBody) } var headers = props.headers || {} @@ -431,13 +433,13 @@ function parseTableFilter(value) { return {} } var valuesArray = value.split(':'); - for (var i=0; i"; - html += li - } - }); - html = "" - } else { - html = error.responseText - } - if (props.method === 'POST') { - $('#success_created').html(''); - $('#success_created_detail').html(''); - $('#created_failed').html(gettext("Import failed")); - $('#created_failed_detail').html(html); - } else { - $('#success_updated').html(''); - $('#success_updated_detail').html(''); - $('#updated_failed').html(gettext("Update failed")); - $('#updated_failed_detail').html(html); - } - } - }) -} - - function htmlEscape(d) { return typeof d === 'string' ? d.replace(//g, '>').replace(/"/g, '"') : @@ -1329,7 +1160,6 @@ function readFile(ref) { } - function select2AjaxInit(option) { /* { @@ -1385,9 +1215,11 @@ function usersSelect2Init(selector, url, disabledData) { if (!url) { url = '/api/v1/users/users/' } + function displayFormat(v) { - return v.name + '(' + v.username +')'; + return v.name + '(' + v.username + ')'; } + var option = { url: url, selector: selector, @@ -1402,9 +1234,11 @@ function nodesSelect2Init(selector, url, disabledData) { if (!url) { url = '/api/v1/assets/nodes/' } + function displayFormat(v) { return v.full_value; } + var option = { url: url, selector: selector, @@ -1419,12 +1253,11 @@ function showCeleryTaskLog(taskId) { window.open(url, '', 'width=900,height=600') } -function getUserLang(){ +function getUserLang() { let userLangEN = document.cookie.indexOf('django_language=en'); - if (userLangEN === -1){ + if (userLangEN === -1) { return 'zh-CN' - } - else{ + } else { return 'en-US' } } @@ -1460,8 +1293,7 @@ function initDateRangePicker(selector, options) { }; if (getUserLang() === 'zh-CN') { defaultOption.locale = zhLocale; - } - else{ + } else { // en-US defaultOption.locale = enLocale; } @@ -1470,7 +1302,9 @@ function initDateRangePicker(selector, options) { } function reloadPage() { - setTimeout( function () {window.location.reload();}, 300); + setTimeout(function () { + window.location.reload(); + }, 300); } function isEmptyObject(obj) { @@ -1494,7 +1328,7 @@ function getStatusIcon(status, mapping, title) { default: 'navy' }; if (!mapping) { - mapping = defaultMapping; + mapping = defaultMapping; } var name = mapping[status] || mapping['default']; var icon = icons[name]; @@ -1564,10 +1398,10 @@ function encryptPassword(password) { function randomString(length) { - const characters ='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let result = ''; const charactersLength = characters.length; - for ( let i = 0; i < length; i++ ) { + for (let i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } @@ -1577,11 +1411,11 @@ function randomString(length) { function testEncrypt() { const radio = [] const len2 = [] - for (let i=1;i<4096;i++) { + for (let i = 1; i < 4096; i++) { const password = randomString(i) const cipher = encryptPassword(password) len2.push([password.length, cipher.length]) - radio.push(cipher.length/password.length) + radio.push(cipher.length / password.length) } return radio } diff --git a/apps/templates/_head_css_js.html b/apps/templates/_head_css_js.html index 43378f21d..d61ee20e8 100644 --- a/apps/templates/_head_css_js.html +++ b/apps/templates/_head_css_js.html @@ -7,14 +7,13 @@ - + + - - - +