-
+
+
+
+
+
+
+ | {{ this.$t('common.WeekCronSelect.WeekOrTime') }} |
+ 00:00 - 12:00 |
+ 12:00 - 24:00 |
+
+
+ | {{ t }} |
+
+
+
+
+ | {{ t.value }} |
+ |
-
-
-
- {{ tips }}
+
+
+ |
+
+ |
+
+
+
+
diff --git a/src/i18n/langs/cn.json b/src/i18n/langs/cn.json
index e68f0864d..81f194afa 100644
--- a/src/i18n/langs/cn.json
+++ b/src/i18n/langs/cn.json
@@ -9,12 +9,15 @@
"name": "名称",
"username": "用户名",
"ip_group": "IP 组",
+ "ip_group_help_text": "格式为逗号分隔的字符串, * 表示匹配所有。例如: 192.168.10.1, 192.168.1.0/24, 10.1.1.1-10.1.1.20, 2001:db8:2de::e13, 2001:db8:1a:1110::/64",
"action": "动作",
+ "Rules": "规则",
+ "Action": "动作",
"priority": "优先级",
"date_created": "创建时间",
"created_by": "创建者",
"asset": "资产信息",
- "users":"用户信息",
+ "users":"用户",
"system_user": "系统用户",
"username_group":"用户名",
"hostname_group":"资产名",
@@ -25,6 +28,7 @@
"apply_login_asset": "申请登录资产",
"apply_login_system_user": "申请登录系统用户",
"apply_login_user": "申请登录用户",
+ "login_confirm_user": "登录复核 受理人",
"RuleDetail": "规则详情"
},
"applications": {
@@ -427,6 +431,19 @@
},
"lastCannotBeDeleteMsg": "最后一项,不能被删除",
"InvalidJson": "不是合法 JSON",
+ "time_period": "时段",
+ "WeekCronSelect": {
+ "Monday": "星期一",
+ "Tuesday": "星期二",
+ "Wednesday": "星期三",
+ "Thursday": "星期四",
+ "Friday": "星期五",
+ "Saturday": "星期六",
+ "Sunday": "星期天",
+ "ClearSelection": "清空选择",
+ "CanDragSelect": "可拖动鼠标选择时间段",
+ "WeekOrTime": "星期/时间"
+ },
"CronTab": {
"newCron": "生成 cron",
"timeExpression": "时间表达式",
@@ -658,11 +675,11 @@
"KubernetesAppUpdate": "更新Kubernetes",
"Acl": "访问控制",
"UserAclList": "用户登录",
- "UserAclCreate": "创建用户登录规则",
+ "UserLoginACLCreate": "创建用户登录规则",
"UserAclLists": "用户登录规则",
- "UserAclUpdate": "更新用户登录规则",
+ "UserLoginACLUpdate": "更新用户登录规则",
"UserAclDetail": "用户登录规则详情",
- "AssetAclList": "登录资产",
+ "AssetAclList": "资产登录",
"AssetAclCreate": "创建资产登录规则",
"AssetAclUpdate": "更新资产登录规则",
"AssetAclDetail": "资产登录规则详情",
@@ -738,7 +755,8 @@
"WebFTP": "文件管理",
"WebTerminal": "Web终端",
"Notifications": "通知",
- "SiteMessageList": "站内信"
+ "SiteMessageList": "站内信",
+ "UserLoginACL": "用户登录"
},
"sessions": {
"SetToDefaultStorage": "设置为默认存储",
diff --git a/src/i18n/langs/en.json b/src/i18n/langs/en.json
index 1ed4d932e..fe3cf3f7a 100644
--- a/src/i18n/langs/en.json
+++ b/src/i18n/langs/en.json
@@ -418,6 +418,7 @@
},
"lastCannotBeDeleteMsg": "The last one can't be delete",
"InvalidJson": "Not a valid json format",
+ "time_period": "Time period",
"CronTab": {
"newCron": "new cron",
"timeExpression": "time expression",
@@ -452,6 +453,19 @@
"runningTimes": "last 5 running times",
"calculationResults": "calculationResults...",
"failedConditions": "cron expression error"
+ },
+ "Cycle": "Cycle",
+ "WeekCronSelect": {
+ "Monday": "Monday",
+ "Tuesday": "Tuesday",
+ "Wednesday": "Wednesday",
+ "Thursday": "Thursday",
+ "Friday": "Friday",
+ "Saturday": "Saturday",
+ "Sunday": "Sunday",
+ "ClearSelection": "Clear selection",
+ "CanDragSelect": "Can drag the mouse to select a time period",
+ "WeekOrTime": "Week/Time"
}
},
"dashboard": {
@@ -722,7 +736,8 @@
"WebFTP": "WebFTP",
"WebTerminal": "Web Terminal",
"Notifications": "Notifications",
- "SiteMessageList": "Site message"
+ "SiteMessageList": "Site message",
+ "UserLoginACL": "User Login ACL"
},
"sessions": {
"SetToDefaultStorage": "Set to default storage",
diff --git a/src/router/acl.js b/src/router/acl.js
index e5884c7cb..b765cbd9e 100644
--- a/src/router/acl.js
+++ b/src/router/acl.js
@@ -38,5 +38,33 @@ export default [
hidden: true
}
]
+ },
+ {
+ path: 'user-login-acl',
+ component: empty,
+ redirect: '',
+ children: [
+ {
+ path: 'create',
+ name: 'UserLoginACLCreate',
+ component: () => import('@/views/acl/UserLoginACL/UserLoginACLCreateUpdate'),
+ meta: { title: i18n.t('route.UserLoginACLCreate'), activeMenu: '/users/users' },
+ hidden: true
+ },
+ {
+ path: ':id',
+ name: 'UserLoginACLDetail',
+ component: () => import('@/views/acl/UserLoginACL/UserDetail'),
+ meta: { title: i18n.t('route.UserLoginACL'), activeMenu: '/users/users' },
+ hidden: true
+ },
+ {
+ path: ':id/update',
+ name: 'UserLoginACLUpdate',
+ component: () => import('@/views/acl/UserLoginACL/UserLoginACLCreateUpdate'),
+ meta: { title: i18n.t('route.UserLoginACLUpdate'), activeMenu: '/users/users' },
+ hidden: true
+ }
+ ]
}
]
diff --git a/src/router/users.js b/src/router/users.js
index 1d087c004..6ea0aa177 100644
--- a/src/router/users.js
+++ b/src/router/users.js
@@ -1,5 +1,4 @@
import i18n from '@/i18n/i18n'
-import empty from '@/layout/empty'
export default [
{
path: 'users',
@@ -54,42 +53,5 @@ export default [
name: 'UserGroupDetail',
hidden: true,
meta: { title: i18n.t('route.UserGroupDetail'), activeMenu: '/users/groups' }
- },
- {
- path: 'user-acl',
- component: empty,
- redirect: '',
- meta: { title: i18n.t('route.UserAclList') },
- hidden: true,
- children: [
- {
- path: '',
- name: 'UserAclList',
- component: () => import('@/views/acl/UserAcl/UserAclList'),
- meta: { title: i18n.t('route.UserAclList'), activeMenu: '/users/users' },
- hidden: true
- },
- {
- path: 'create',
- name: 'UserAclCreate',
- component: () => import('@/views/acl/UserAcl/UserAclCreateUpdate'),
- meta: { title: i18n.t('route.UserAclCreate'), activeMenu: '/users/users' },
- hidden: true
- },
- {
- path: ':id',
- name: 'UserAclDetail',
- component: () => import('@/views/acl/UserAcl/UserAclDetail'),
- meta: { title: i18n.t('route.UserAclDetail'), activeMenu: '/users/users' },
- hidden: true
- },
- {
- path: ':id/update',
- name: 'UserAclUpdate',
- component: () => import('@/views/acl/UserAcl/UserAclCreateUpdate'),
- meta: { title: i18n.t('route.UserAclUpdate') },
- hidden: true
- }
- ]
}
]
diff --git a/src/views/acl/UserAcl/UserAclCreateUpdate.vue b/src/views/acl/UserAcl/UserAclCreateUpdate.vue
deleted file mode 100644
index d66645e1f..000000000
--- a/src/views/acl/UserAcl/UserAclCreateUpdate.vue
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/views/acl/UserAcl/UserAclDetail/Detail.vue b/src/views/acl/UserLoginACL/UserDetail/Detail.vue
similarity index 56%
rename from src/views/acl/UserAcl/UserAclDetail/Detail.vue
rename to src/views/acl/UserLoginACL/UserDetail/Detail.vue
index ac4909f41..b80814504 100644
--- a/src/views/acl/UserAcl/UserAclDetail/Detail.vue
+++ b/src/views/acl/UserLoginACL/UserDetail/Detail.vue
@@ -11,14 +11,11 @@
diff --git a/src/views/acl/UserAcl/UserAclDetail/index.vue b/src/views/acl/UserLoginACL/UserDetail/index.vue
similarity index 99%
rename from src/views/acl/UserAcl/UserAclDetail/index.vue
rename to src/views/acl/UserLoginACL/UserDetail/index.vue
index fe037e7a5..ff826782e 100644
--- a/src/views/acl/UserAcl/UserAclDetail/index.vue
+++ b/src/views/acl/UserLoginACL/UserDetail/index.vue
@@ -37,5 +37,4 @@ export default {
diff --git a/src/views/acl/UserLoginACL/UserLoginACLCreateUpdate.vue b/src/views/acl/UserLoginACL/UserLoginACLCreateUpdate.vue
new file mode 100644
index 000000000..68762d94f
--- /dev/null
+++ b/src/views/acl/UserLoginACL/UserLoginACLCreateUpdate.vue
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
diff --git a/src/views/acl/UserAcl/UserAclList.vue b/src/views/acl/UserLoginACL/UserLoginACLList.vue
similarity index 73%
rename from src/views/acl/UserAcl/UserAclList.vue
rename to src/views/acl/UserLoginACL/UserLoginACLList.vue
index 5c5fd9290..71d7126c2 100644
--- a/src/views/acl/UserAcl/UserAclList.vue
+++ b/src/views/acl/UserLoginACL/UserLoginACLList.vue
@@ -14,15 +14,15 @@ export default {
return {
tableConfig: {
url: `/api/v1/acls/login-acls/?user=${this.$route.params.id}`,
- columns: ['name', 'ip_group', 'priority', 'action', 'is_active', 'comment', 'actions'],
+ columns: ['name', 'ip_group', 'reviewers', 'priority', 'user_display', 'is_active', 'comment', 'actions'],
columnsShow: {
min: ['name', 'actions'],
- default: ['name', 'ip_group', 'priority', 'action', 'is_active', 'comment', 'actions']
+ default: ['name', 'priority', 'is_active', 'user_display', 'comment', 'actions']
},
columnsMeta: {
name: {
formatterArgs: {
- route: 'UserAclDetail',
+ route: 'UserLoginACLDetail',
routeQuery: {
user: this.$route.params.id
}
@@ -35,10 +35,13 @@ export default {
action: {
prop: 'action_display'
},
+ reviewers: {
+ prop: 'reviewers_amount'
+ },
actions: {
formatterArgs: {
hasClone: false,
- updateRoute: { name: 'UserAclUpdate', query: { user: this.$route.params.id }},
+ updateRoute: { name: 'UserLoginACLUpdate', query: { user: this.$route.params.id }},
performDelete: ({ row, col }) => {
const id = row.id
const url = `/api/v1/acls/login-acls/${id}/?user=${this.$route.params.id}`
@@ -49,7 +52,7 @@ export default {
}
},
headerActions: {
- createRoute: { name: 'UserAclCreate', query: { user: this.$route.params.id }},
+ createRoute: { name: 'UserLoginACLCreate', query: { user: this.$route.params.id }},
hasRefresh: true,
hasExport: false,
hasImport: false,
diff --git a/src/views/users/User/UserDetail/UserInfo.vue b/src/views/users/User/UserDetail/UserInfo.vue
index cd699cbf7..64aaaba67 100644
--- a/src/views/users/User/UserDetail/UserInfo.vue
+++ b/src/views/users/User/UserDetail/UserInfo.vue
@@ -6,7 +6,6 @@
-
@@ -192,32 +191,6 @@ export default {
})
return this.$axios.post(relationUrl, data)
}
- },
- loginConfirmSetting: {
- icon: 'fa-user',
- title: this.$t('users.LoginConfirm'),
- objectsAjax: {
- url: '/api/v1/users/users/'
- },
- hasObjectsId: this.object.login_confirm_settings,
- performDelete: (item) => {
- const objectId = this.object.id
- const relationUrl = `/api/v1/authentication/login-confirm-settings/${objectId}/`
- const data = {
- reviewers: this.object.login_confirm_settings.filter(approver => approver !== item.value)
- }
- return this.$axios.patch(relationUrl, data)
- },
- performAdd: (items) => {
- const objectId = this.object.id
- const relationUrl = `/api/v1/authentication/login-confirm-settings/${objectId}/`
- const data = {
- reviewers: [...this.object.login_confirm_settings || [], ...items.map(v => {
- return v.value
- })]
- }
- return this.$axios.patch(relationUrl, data)
- }
}
}
},
diff --git a/src/views/users/User/UserDetail/index.vue b/src/views/users/User/UserDetail/index.vue
index ebf663d48..1b8983fe9 100644
--- a/src/views/users/User/UserDetail/index.vue
+++ b/src/views/users/User/UserDetail/index.vue
@@ -15,7 +15,7 @@ import UserApplicationPermissionRules from './UserApplicationsPermissionRules'
import UserGrantedDatabases from './UserGrantedDatabases'
import UserGrantedK8Ss from './UserGrantedK8Ss'
import UserK8SPermissionRules from './UserK8SPermissionRules'
-import UserAclList from '@/views/acl/UserAcl/UserAclList'
+import UserLoginACLList from '@/views/acl/UserLoginACL/UserLoginACLList'
import UserDatabasePermissionRules from './UserDatabasePermissionRules'
import UserInfo from './UserInfo'
@@ -31,7 +31,7 @@ export default {
UserDatabasePermissionRules,
UserK8SPermissionRules,
UserGrantedK8Ss,
- UserAclList
+ UserLoginACLList
},
data() {
const vm = this
@@ -66,7 +66,7 @@ export default {
},
{
title: this.$t('route.UserAclLists'),
- name: 'UserAclList'
+ name: 'UserLoginACLList'
}
]
}