mirror of https://github.com/rancher/dashboard.git
84 lines
1.9 KiB
JavaScript
84 lines
1.9 KiB
JavaScript
import { DESCRIPTION } from '@/config/labels-annotations';
|
|
import { SCHEMA } from '@/config/types';
|
|
import { CATTLE_API_GROUP, SUBTYPE_MAPPING } from '@/models/management.cattle.io.roletemplate';
|
|
import { uniq } from '@/utils/array';
|
|
import Vue from 'vue';
|
|
import { get } from '@/utils/object';
|
|
|
|
const BASE = 'user-base';
|
|
const USER = 'user';
|
|
const ADMIN = 'admin';
|
|
const SPECIAL = [BASE, ADMIN, USER];
|
|
|
|
const GLOBAL = SUBTYPE_MAPPING.GLOBAL.key;
|
|
|
|
export default {
|
|
customValidationRules() {
|
|
return [
|
|
{
|
|
path: 'rules',
|
|
validators: ['roleTemplateRules'],
|
|
nullable: false,
|
|
type: 'array',
|
|
},
|
|
];
|
|
},
|
|
|
|
details() {
|
|
const out = this._details;
|
|
|
|
out.unshift({
|
|
label: this.t('resourceDetail.detailTop.name'),
|
|
content: get(this, 'name')
|
|
});
|
|
|
|
return out;
|
|
},
|
|
|
|
nameDisplay() {
|
|
return this.$rootGetters['i18n/withFallback'](`rbac.globalRoles.role.${ this.id }.label`, this.displayName || this.metadata?.name || this.id);
|
|
},
|
|
|
|
description() {
|
|
return this.metadata?.annotations?.[DESCRIPTION] || this.$rootGetters['i18n/withFallback'](`rbac.globalRoles.role.${ this.id }.description`, this.t(`rbac.globalRoles.unknownRole.description`));
|
|
},
|
|
|
|
isSpecial() {
|
|
return SPECIAL.includes(this.id);
|
|
},
|
|
|
|
subtype() {
|
|
return GLOBAL;
|
|
},
|
|
|
|
default() {
|
|
return !!this.newUserDefault;
|
|
},
|
|
|
|
updateDefault() {
|
|
return (value) => {
|
|
Vue.set(this, 'newUserDefault', value);
|
|
};
|
|
},
|
|
|
|
allResources() {
|
|
return this.$getters['all'](SCHEMA).filter(r => r.attributes?.kind);
|
|
},
|
|
|
|
globalResources() {
|
|
return this.allResources.filter(r => r.attributes.group.includes(CATTLE_API_GROUP));
|
|
},
|
|
|
|
resources() {
|
|
return uniq(this.globalResources.map(r => r.attributes?.kind)).sort();
|
|
},
|
|
|
|
listLocation() {
|
|
return {
|
|
name: `c-cluster-auth-roles`,
|
|
hash: `#${ GLOBAL }`
|
|
};
|
|
},
|
|
|
|
};
|