fix: 修复若干rbac问题, 修复任务名字显示中心不友好问题

This commit is contained in:
Aaron3S
2023-02-15 19:07:28 +08:00
committed by huailei
parent 1f95761d38
commit f039d13bd2
14 changed files with 68 additions and 33 deletions

View File

@@ -827,6 +827,9 @@
"Weekly": "Weekly"
},
"ops": {
"StatusGreen": "Recently in good condition",
"StatusRed": "The last task execution failed",
"StatusYellow": "Recent Execution Failures",
"RunAgain": "Run again",
"ManualInput": "Manual input",
"Execute": "Execute",

View File

@@ -826,6 +826,9 @@
"Weekly": "週ごと"
},
"ops": {
"StatusGreen": "最近調子がいい\n",
"StatusRed": "最後のタスクの実行に失敗しました",
"StatusYellow": "最近の存在の実行に失敗しました",
"RunAgain": "再実行",
"ManualInput": "手動入力",
"Execute": "実行",

View File

@@ -822,6 +822,9 @@
"Weekly": "按周"
},
"ops": {
"StatusGreen": "近期状态良好",
"StatusRed": "上一次任务执行失败",
"StatusYellow": "近期存在在执行失败",
"RunAgain": "再次执行",
"AdhocUpdate": "更新命令",
"Add": "新增",

View File

@@ -124,7 +124,7 @@ export default [
name: 'AccountPushDetail',
hidden: true,
meta: {
title: i18n.t('accounts.AccountPush.AccountPushList'),
title: i18n.t('accounts.AccountChangeSecret.AccountChangeSecret'),
permissions: ['accounts.view_pushaccountautomation']
}
},

View File

@@ -8,21 +8,27 @@ export default [
component: empty,
meta: {
title: i18n.t('route.TaskList'),
permissions: ['ops.view_celerytask', 'ops.view_taskmonitor']
permissions: ['ops.view_celerytask | ops.view_taskmonitor']
},
children: [
{
path: '',
name: 'TaskList',
component: () => import('@/views/tasks/TaskList'),
meta: { title: i18n.t('route.TaskList'), permissions: ['ops.view_celerytask'] }
meta: {
title: i18n.t('route.TaskList'),
permissions: ['ops.view_celerytask']
}
},
{
path: ':id',
component: () => import('@/views/tasks/TaskDetail'),
name: 'TaskDetail',
hidden: true,
meta: { title: i18n.t('route.TaskDetail'), permissions: ['ops.view_celerytask'] }
meta: {
title: i18n.t('route.TaskDetail'),
permissions: ['ops.view_celerytask']
}
}
]
},
@@ -30,6 +36,9 @@ export default [
path: `${BASE_URL}/core/flower/?_=${Date.now()}`,
name: 'TaskMonitor',
// component: () => window.open(`/core/flower?_=${Date.now()}`),
meta: { title: i18n.t('route.TaskMonitor'), permissions: ['ops.view_taskmonitor'] }
meta: {
title: i18n.t('route.TaskMonitor'),
permissions: ['ops.view_taskmonitor']
}
}
]

View File

@@ -86,7 +86,7 @@ export default {
meta: {
title: i18n.t('route.JobCenter'),
icon: 'task-center',
permissions: ['ops.view_job'],
permissions: [],
hidden: () => {
return !store.getters.publicSettings['SECURITY_COMMAND_EXECUTION']
}
@@ -98,7 +98,7 @@ export default {
component: () => import('@/views/ops/Job/QuickJob'),
meta: {
title: i18n.t('ops.QuickJob'),
permissions: ['ops.view_job', 'ops.add_job']
permissions: ['ops.view_job', 'ops.add_job', 'ops.add_jobexecution']
}
},
{
@@ -161,7 +161,7 @@ export default {
component: () => import('@/views/ops/Template'),
meta: {
title: i18n.t('route.Template'),
permissions: ['ops.view_adhoc', 'ops.view_playbook']
permissions: ['ops.view_adhoc|ops.view_playbook']
}
},
{

View File

@@ -53,11 +53,6 @@ export default {
}
},
comment: {
on: {
change: (val) => {
console.log(val)
}
},
hidden: () => {
return this.instantTask
}

View File

@@ -80,17 +80,16 @@ export default {
formatter: ActionsFormatter,
formatterArgs: {
hasUpdate: true,
canUpdate: true,
canUpdate: this.$hasPerm('ops.change_job'),
updateRoute: 'JobUpdate',
hasDelete: true,
canDelete: true,
canDelete: this.$hasPerm('ops.delete_job'),
hasClone: false,
extraActions: [
{
title: this.$t('ops.Run'),
name: 'run',
type: 'running',
can: true,
can: this.$hasPerm('ops.add_jobexecution'),
callback: ({ row }) => {
const params = JSON.parse(row.parameters_define)
if (Object.keys(params).length > 0) {

View File

@@ -29,10 +29,10 @@ export default {
formatter: ActionsFormatter,
formatterArgs: {
hasUpdate: true,
canUpdate: true,
canUpdate: this.$hasPerm('ops.change_adhoc'),
updateRoute: 'AdhocUpdate',
hasDelete: true,
canDelete: true,
canDelete: this.$hasPerm('ops.delete_adhoc'),
hasClone: false
}
}

View File

@@ -39,10 +39,10 @@ export default {
formatter: ActionsFormatter,
formatterArgs: {
hasUpdate: true,
canUpdate: true,
canUpdate: this.$hasPerm('ops.change_playbook'),
updateRoute: 'PlaybookUpdate',
hasDelete: true,
canDelete: true,
canDelete: this.$hasPerm('ops.delete_playbook'),
hasClone: false
}
}

View File

@@ -26,11 +26,13 @@ export default {
submenu: [
{
title: this.$t('ops.AdhocManage'),
name: 'Adhoc'
name: 'Adhoc',
hidden: () => !this.$hasPerm('ops.view_adhoc')
},
{
title: this.$t('ops.PlaybookManage'),
name: 'Playbook'
name: 'Playbook',
hidden: () => !this.$hasPerm('ops.view_playbook')
}
]
}

View File

@@ -25,7 +25,7 @@ export default {
},
computed: {
cardTitle() {
return this.object.name
return this.object.meta.comment ? this.object.meta.comment : this.object.name
},
detailCardItems() {
return [

View File

@@ -1,7 +1,13 @@
<template>
<GenericDetailPage :object.sync="TaskDetail" :active-menu.sync="config.activeMenu" v-bind="config" v-on="$listeners">
<GenericDetailPage
:title="getTitle"
:object.sync="taskDetail"
:active-menu.sync="config.activeMenu"
v-bind="config"
v-on="$listeners"
>
<keep-alive>
<component :is="config.activeMenu" :object="TaskDetail" />
<component :is="config.activeMenu" :object="taskDetail" />
</keep-alive>
</GenericDetailPage>
</template>
@@ -22,7 +28,7 @@ export default {
},
data() {
return {
TaskDetail: {},
taskDetail: {},
config: {
url: '/api/v1/ops/tasks',
activeMenu: 'TaskDetail',
@@ -33,13 +39,19 @@ export default {
},
{
title: this.$t('ops.execution'),
name: 'TaskHistory'
name: 'TaskHistory',
hidden: () => !this.$hasPerm('ops.view_celerytaskexecution')
}
],
hasRightSide: false,
hasActivity: false
}
}
},
computed: {
getTitle() {
return this.taskDetail.meta && this.taskDetail.meta.comment ? this.taskDetail.meta.comment : this.taskDetail.name
}
}
}
</script>

View File

@@ -4,6 +4,7 @@
<script type="text/jsx">
import { GenericListPage } from '@/layout/components'
import { DetailFormatter } from '@/components/TableFormatters'
export default {
components: {
@@ -14,12 +15,20 @@ export default {
tableConfig: {
url: '/api/v1/ops/tasks/',
columns: [
'name', 'queue', 'count', 'state', 'comment', 'date_last_publish'
'name', 'queue', 'count', 'state', 'date_last_publish'
],
columnsMeta: {
name: {
formatter: DetailFormatter,
formatterArgs: {
can: true
can: this.$hasPerm('ops.view_celerytask'),
router: 'TaskDetail',
getTitle({ col, row, cellValue }) {
if (row.meta && row.meta.comment) {
return row.meta.comment
}
return cellValue
}
}
},
actions: {
@@ -63,11 +72,11 @@ export default {
formatter: (row) => {
switch (row.state) {
case 'green':
return <i Class='fa fa-circle-o text-primary'/>
return <el-tooltip effect={'dark'} content={this.$tc('ops.StatusGreen')} placement={'bottom'}><i Class='fa fa-circle-o text-primary'/></el-tooltip>
case 'yellow':
return <i Class='fa fa-circle-o text-warning'/>
return <el-tooltip effect={'dark'} content={this.$tc('ops.StatusYellow')} placement={'bottom'}><i Class='fa fa-circle-o text-warning'/></el-tooltip>
case 'red':
return <i Class='fa fa-circle-o text-danger'/>
return <el-tooltip effect={'dark'} content={this.$tc('ops.StatusRed')} placement={'bottom'}><i Class='fa fa-circle-o text-danger'/></el-tooltip>
}
}
}