index.js 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. import Layout from '@/layouts/RouterView'
  2. import i18n from '@/locales'
  3. import { isScopedPolicyMenuHidden } from '@/utils/scopedPolicy'
  4. import { setupKeys } from '@/utils/auth'
  5. const IDP = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/idp')
  6. const IDPEdit = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/idp/edit')
  7. const Domain = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/domains')
  8. const DomainCreate = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/domains/create')
  9. const Projects = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/projects')
  10. const SecurityAlerts = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/security-alerts')
  11. const ProjectCreate = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/projects/create')
  12. const Group = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/group')
  13. const User = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/user')
  14. const UserCreate = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/user/create')
  15. const Role = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/role')
  16. const Policy = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/policy')
  17. const PolicyCreate = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/policy/Create')
  18. const PolicyUpdate = () => import(/* webpackChunkName: "iam" */ /* webpackPrefetch: true */ '@IAM/views/policy/Update')
  19. function menuPath (path) {
  20. return '/iam' + path
  21. }
  22. export default {
  23. index: 91,
  24. meta: {
  25. label: i18n.t('scope.text_959'),
  26. icon: 'menu-iam',
  27. },
  28. menus: [
  29. {
  30. meta: {
  31. label: i18n.t('common_21'),
  32. },
  33. submenus: [
  34. {
  35. path: '/idp',
  36. meta: {
  37. label: i18n.t('system.text_4'),
  38. permission: 'idps_list',
  39. t: 'dictionary.identity_provider',
  40. hidden: () => {
  41. if (isScopedPolicyMenuHidden('sub_hidden_menus.idp')) {
  42. return true
  43. }
  44. return !setupKeys.hasVersionedSetupKey({ '3.0': ['auth'] }, true)
  45. },
  46. },
  47. component: Layout,
  48. children: [
  49. {
  50. name: 'IdpIndex',
  51. path: '',
  52. component: IDP,
  53. meta: {
  54. key: '/idp',
  55. keepAlive: true,
  56. keepAliveViews: ['IdpUpdate'],
  57. },
  58. },
  59. {
  60. name: 'IdpCreate',
  61. path: 'create',
  62. meta: {},
  63. component: IDPEdit,
  64. },
  65. {
  66. name: 'IdpUpdate',
  67. path: 'update/:id',
  68. meta: {},
  69. component: IDPEdit,
  70. },
  71. ],
  72. },
  73. {
  74. path: '/domain',
  75. meta: {
  76. label: i18n.t('system.text_5'),
  77. permission: 'domains_list',
  78. t: 'dictionary.domain',
  79. hidden: () => {
  80. if (isScopedPolicyMenuHidden('sub_hidden_menus.domain')) {
  81. return true
  82. }
  83. return !setupKeys.hasVersionedSetupKey({ '3.0': ['auth'] }, true)
  84. },
  85. },
  86. component: Layout,
  87. children: [
  88. {
  89. name: 'Domain',
  90. path: '',
  91. component: Domain,
  92. },
  93. {
  94. name: 'DomainCreate',
  95. path: 'create',
  96. component: DomainCreate,
  97. },
  98. ],
  99. },
  100. {
  101. path: '/project',
  102. meta: {
  103. label: i18n.t('system.text_9'),
  104. permission: 'projects_list',
  105. t: 'dictionary.project',
  106. hidden: () => {
  107. if (isScopedPolicyMenuHidden('sub_hidden_menus.project')) {
  108. return true
  109. }
  110. return !setupKeys.hasVersionedSetupKey({ '3.0': ['auth'] }, true)
  111. },
  112. },
  113. component: Layout,
  114. children: [
  115. {
  116. name: 'Projects',
  117. path: '',
  118. component: Projects,
  119. },
  120. {
  121. name: 'ProjectCreate',
  122. path: 'create',
  123. component: ProjectCreate,
  124. },
  125. ],
  126. },
  127. {
  128. path: '/group',
  129. meta: {
  130. label: i18n.t('system.text_7'),
  131. permission: 'groups_list',
  132. t: 'dictionary.group',
  133. hidden: () => {
  134. if (isScopedPolicyMenuHidden('sub_hidden_menus.group')) {
  135. return true
  136. }
  137. return !setupKeys.hasVersionedSetupKey({ '3.0': ['auth'] }, true)
  138. },
  139. },
  140. component: Layout,
  141. children: [
  142. {
  143. name: 'GroupList',
  144. path: '',
  145. component: Group,
  146. },
  147. ],
  148. },
  149. {
  150. path: '/systemuser',
  151. meta: {
  152. label: i18n.t('system.text_6'),
  153. permission: 'users_list',
  154. t: 'dictionary.user',
  155. hidden: () => {
  156. if (isScopedPolicyMenuHidden('sub_hidden_menus.systemuser')) {
  157. return true
  158. }
  159. return !setupKeys.hasVersionedSetupKey({ '3.0': ['auth'] }, true)
  160. },
  161. },
  162. component: Layout,
  163. children: [
  164. {
  165. name: 'User',
  166. path: '',
  167. meta: {},
  168. component: User,
  169. },
  170. {
  171. name: 'UserCreate',
  172. path: 'create',
  173. meta: {},
  174. component: UserCreate,
  175. },
  176. ],
  177. },
  178. {
  179. path: '/role',
  180. meta: {
  181. label: i18n.t('system.text_10'),
  182. permission: 'roles_list',
  183. t: 'dictionary.role',
  184. hidden: () => {
  185. if (isScopedPolicyMenuHidden('sub_hidden_menus.role')) {
  186. return true
  187. }
  188. return !setupKeys.hasVersionedSetupKey({ '3.0': ['auth'] }, true)
  189. },
  190. },
  191. component: Layout,
  192. children: [
  193. {
  194. name: 'RoleList',
  195. path: '',
  196. component: Role,
  197. },
  198. ],
  199. },
  200. {
  201. path: '/policy',
  202. meta: {
  203. label: i18n.t('system.text_11'),
  204. permission: 'policies_list',
  205. t: 'dictionary.policy',
  206. hidden: () => {
  207. if (isScopedPolicyMenuHidden('sub_hidden_menus.policy')) {
  208. return true
  209. }
  210. return !setupKeys.hasVersionedSetupKey({ '3.0': ['auth'] }, true)
  211. },
  212. },
  213. component: Layout,
  214. children: [
  215. {
  216. name: 'PolicyIndex',
  217. path: '',
  218. component: Policy,
  219. meta: {
  220. key: '/policy',
  221. keepAlive: true,
  222. keepAliveViews: ['PolicyUpdate'],
  223. },
  224. },
  225. {
  226. name: 'PolicyCreate',
  227. path: 'create',
  228. component: PolicyCreate,
  229. },
  230. {
  231. name: 'PolicyUpdate',
  232. path: 'update',
  233. component: PolicyUpdate,
  234. },
  235. ],
  236. },
  237. ],
  238. },
  239. {
  240. meta: {
  241. label: i18n.t('scope.text_961'),
  242. },
  243. submenus: [
  244. {
  245. path: menuPath('/securityalerts'),
  246. meta: {
  247. label: i18n.t('scope.text_961'),
  248. permission: 'notifications_list',
  249. hidden: () => {
  250. if (isScopedPolicyMenuHidden('sub_hidden_menus.iam_securityalerts')) {
  251. return true
  252. }
  253. return !setupKeys.hasVersionedSetupKey({ '3.0': ['auth'] }, true)
  254. },
  255. },
  256. component: Layout,
  257. children: [
  258. {
  259. name: 'SecurityAlerts',
  260. path: '',
  261. component: SecurityAlerts,
  262. },
  263. ],
  264. },
  265. ],
  266. },
  267. ],
  268. }