Merge "feat: update role detail page"
This commit is contained in:
commit
3f7475e9be
@ -47,6 +47,13 @@ export default class DetailBase extends React.Component {
|
|||||||
this.fetchDataWithPolicy();
|
this.fetchDataWithPolicy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps) {
|
||||||
|
const { id: oldId } = prevProps.match.params;
|
||||||
|
if (this.id !== oldId) {
|
||||||
|
this.handleRefresh(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
get params() {
|
get params() {
|
||||||
return this.props.match.params || {};
|
return this.props.match.params || {};
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,6 @@
|
|||||||
"Additional routes announced to the instance, one entry per line(e.g. 192.168.200.0/24,10.56.1.254)": "Additional routes announced to the instance, one entry per line(e.g. 192.168.200.0/24,10.56.1.254)",
|
"Additional routes announced to the instance, one entry per line(e.g. 192.168.200.0/24,10.56.1.254)": "Additional routes announced to the instance, one entry per line(e.g. 192.168.200.0/24,10.56.1.254)",
|
||||||
"Additional routes announced to the instance, one entry per line(e.g. {ip})": "Additional routes announced to the instance, one entry per line(e.g. {ip})",
|
"Additional routes announced to the instance, one entry per line(e.g. {ip})": "Additional routes announced to the instance, one entry per line(e.g. {ip})",
|
||||||
"Addresses": "Addresses",
|
"Addresses": "Addresses",
|
||||||
"Admin": "Admin",
|
|
||||||
"Admin State": "Admin State",
|
"Admin State": "Admin State",
|
||||||
"Admin Status": "Admin Status",
|
"Admin Status": "Admin Status",
|
||||||
"Administrator": "Administrator",
|
"Administrator": "Administrator",
|
||||||
@ -246,7 +245,6 @@
|
|||||||
"Block Device Mapping": "Block Device Mapping",
|
"Block Device Mapping": "Block Device Mapping",
|
||||||
"Block Migrate": "Block Migrate",
|
"Block Migrate": "Block Migrate",
|
||||||
"Block Storage Services": "Block Storage Services",
|
"Block Storage Services": "Block Storage Services",
|
||||||
"Block Storage service:": "Block Storage service:",
|
|
||||||
"Blocked": "Blocked",
|
"Blocked": "Blocked",
|
||||||
"Bolivia": "Bolivia",
|
"Bolivia": "Bolivia",
|
||||||
"Boot Device": "Boot Device",
|
"Boot Device": "Boot Device",
|
||||||
@ -394,7 +392,6 @@
|
|||||||
"Compute Stop Instance": "Compute Stop Instance",
|
"Compute Stop Instance": "Compute Stop Instance",
|
||||||
"Compute Suspend Instance": "Compute Suspend Instance",
|
"Compute Suspend Instance": "Compute Suspend Instance",
|
||||||
"Compute Unpause Instance": "Compute Unpause Instance",
|
"Compute Unpause Instance": "Compute Unpause Instance",
|
||||||
"Compute service:": "Compute service:",
|
|
||||||
"Conductor Live Migrate Instance": "Conductor Live Migrate Instance",
|
"Conductor Live Migrate Instance": "Conductor Live Migrate Instance",
|
||||||
"Conductor Live Resize Instance": "Conductor Live Resize Instance",
|
"Conductor Live Resize Instance": "Conductor Live Resize Instance",
|
||||||
"Conductor Migrate Server": "Conductor Migrate Server",
|
"Conductor Migrate Server": "Conductor Migrate Server",
|
||||||
@ -1084,7 +1081,6 @@
|
|||||||
"Iceland": "Iceland",
|
"Iceland": "Iceland",
|
||||||
"Identifier of the physical port on the switch to which node’s port is connected to": "Identifier of the physical port on the switch to which node’s port is connected to",
|
"Identifier of the physical port on the switch to which node’s port is connected to": "Identifier of the physical port on the switch to which node’s port is connected to",
|
||||||
"Identity": "Identity",
|
"Identity": "Identity",
|
||||||
"Identity service:": "Identity service:",
|
|
||||||
"If \"Enable\" fails to roll back, the resource will be deleted after the creation fails; if \"Disable\" fails to roll back, the resource will be retained after the creation fails.": "If \"Enable\" fails to roll back, the resource will be deleted after the creation fails; if \"Disable\" fails to roll back, the resource will be retained after the creation fails.",
|
"If \"Enable\" fails to roll back, the resource will be deleted after the creation fails; if \"Disable\" fails to roll back, the resource will be retained after the creation fails.": "If \"Enable\" fails to roll back, the resource will be deleted after the creation fails; if \"Disable\" fails to roll back, the resource will be retained after the creation fails.",
|
||||||
"If OS is Linux, system will reset root password, if OS is Windows, system will reset Administrator password.": "If OS is Linux, system will reset root password, if OS is Windows, system will reset Administrator password.",
|
"If OS is Linux, system will reset root password, if OS is Windows, system will reset Administrator password.": "If OS is Linux, system will reset root password, if OS is Windows, system will reset Administrator password.",
|
||||||
"If an instance is using this flavor, deleting it will cause the instance's flavor data to be missing. Are you sure to delete {name}?": "If an instance is using this flavor, deleting it will cause the instance's flavor data to be missing. Are you sure to delete {name}?",
|
"If an instance is using this flavor, deleting it will cause the instance's flavor data to be missing. Are you sure to delete {name}?": "If an instance is using this flavor, deleting it will cause the instance's flavor data to be missing. Are you sure to delete {name}?",
|
||||||
@ -1114,9 +1110,9 @@
|
|||||||
"Image Size": "Image Size",
|
"Image Size": "Image Size",
|
||||||
"Image Snapshot Pending": "Image Snapshot Pending",
|
"Image Snapshot Pending": "Image Snapshot Pending",
|
||||||
"Image Uploading": "Image Uploading",
|
"Image Uploading": "Image Uploading",
|
||||||
"Image service:": "Image service:",
|
|
||||||
"Immediate effect": "Immediate effect",
|
"Immediate effect": "Immediate effect",
|
||||||
"Immediately delete": "Immediately delete",
|
"Immediately delete": "Immediately delete",
|
||||||
|
"Implied Roles": "Implied Roles",
|
||||||
"Import Keypair": "Import Keypair",
|
"Import Keypair": "Import Keypair",
|
||||||
"Import Metadata": "Import Metadata",
|
"Import Metadata": "Import Metadata",
|
||||||
"Import metadata": "Import metadata",
|
"Import metadata": "Import metadata",
|
||||||
@ -1483,7 +1479,6 @@
|
|||||||
"Network topology page": "Network topology page",
|
"Network topology page": "Network topology page",
|
||||||
"Networking": "Networking",
|
"Networking": "Networking",
|
||||||
"Networking *": "Networking *",
|
"Networking *": "Networking *",
|
||||||
"Networking service:": "Networking service:",
|
|
||||||
"Networks": "Networks",
|
"Networks": "Networks",
|
||||||
"Neutron Agent Detail": "Neutron Agent Detail",
|
"Neutron Agent Detail": "Neutron Agent Detail",
|
||||||
"Neutron Agents": "Neutron Agents",
|
"Neutron Agents": "Neutron Agents",
|
||||||
@ -1580,7 +1575,6 @@
|
|||||||
"Orchestration": "Orchestration",
|
"Orchestration": "Orchestration",
|
||||||
"Orchestration Services": "Orchestration Services",
|
"Orchestration Services": "Orchestration Services",
|
||||||
"Orchestration information": "Orchestration information",
|
"Orchestration information": "Orchestration information",
|
||||||
"Orchestration service:": "Orchestration service:",
|
|
||||||
"Origin File Name": "Origin File Name",
|
"Origin File Name": "Origin File Name",
|
||||||
"Original Password": "Original Password",
|
"Original Password": "Original Password",
|
||||||
"Other Protocol": "Other Protocol",
|
"Other Protocol": "Other Protocol",
|
||||||
@ -1651,7 +1645,6 @@
|
|||||||
"Physical Node": "Physical Node",
|
"Physical Node": "Physical Node",
|
||||||
"Physical Storage Usage": "Physical Storage Usage",
|
"Physical Storage Usage": "Physical Storage Usage",
|
||||||
"Pitcairn": "Pitcairn",
|
"Pitcairn": "Pitcairn",
|
||||||
"Placement service:": "Placement service:",
|
|
||||||
"Platform Info": "Platform Info",
|
"Platform Info": "Platform Info",
|
||||||
"Please confirm your password!": "Please confirm your password!",
|
"Please confirm your password!": "Please confirm your password!",
|
||||||
"Please enter JSON in the correct format!": "Please enter JSON in the correct format!",
|
"Please enter JSON in the correct format!": "Please enter JSON in the correct format!",
|
||||||
@ -1767,16 +1760,13 @@
|
|||||||
"Profile": "Profile",
|
"Profile": "Profile",
|
||||||
"Progress": "Progress",
|
"Progress": "Progress",
|
||||||
"Project": "Project",
|
"Project": "Project",
|
||||||
"Project Admin": "Project Admin",
|
|
||||||
"Project Detail": "Project Detail",
|
"Project Detail": "Project Detail",
|
||||||
"Project ID": "Project ID",
|
"Project ID": "Project ID",
|
||||||
"Project ID/Name": "Project ID/Name",
|
"Project ID/Name": "Project ID/Name",
|
||||||
"Project Member": "Project Member",
|
|
||||||
"Project Name": "Project Name",
|
"Project Name": "Project Name",
|
||||||
"Project Num": "Project Num",
|
"Project Num": "Project Num",
|
||||||
"Project Quota": "Project Quota",
|
"Project Quota": "Project Quota",
|
||||||
"Project Range": "Project Range",
|
"Project Range": "Project Range",
|
||||||
"Project Reader": "Project Reader",
|
|
||||||
"Project Scope": "Project Scope",
|
"Project Scope": "Project Scope",
|
||||||
"Project Scope (Project Name: Role Names)": "Project Scope (Project Name: Role Names)",
|
"Project Scope (Project Name: Role Names)": "Project Scope (Project Name: Role Names)",
|
||||||
"Project User": "Project User",
|
"Project User": "Project User",
|
||||||
@ -1837,7 +1827,6 @@
|
|||||||
"Read And Write": "Read And Write",
|
"Read And Write": "Read And Write",
|
||||||
"Read and write": "Read and write",
|
"Read and write": "Read and write",
|
||||||
"Read only": "Read only",
|
"Read only": "Read only",
|
||||||
"Reader": "Reader",
|
|
||||||
"Real Name": "Real Name",
|
"Real Name": "Real Name",
|
||||||
"Reason": "Reason",
|
"Reason": "Reason",
|
||||||
"Reason: ": "Reason: ",
|
"Reason: ": "Reason: ",
|
||||||
@ -1922,7 +1911,6 @@
|
|||||||
"Role": "Role",
|
"Role": "Role",
|
||||||
"Role Detail": "Role Detail",
|
"Role Detail": "Role Detail",
|
||||||
"Role Name": "Role Name",
|
"Role Name": "Role Name",
|
||||||
"Role Power": "Role Power",
|
|
||||||
"Roles": "Roles",
|
"Roles": "Roles",
|
||||||
"Rollback Complete": "Rollback Complete",
|
"Rollback Complete": "Rollback Complete",
|
||||||
"Rollback Failed": "Rollback Failed",
|
"Rollback Failed": "Rollback Failed",
|
||||||
@ -2174,12 +2162,10 @@
|
|||||||
"Syncing": "Syncing",
|
"Syncing": "Syncing",
|
||||||
"Syrian Arab Republic": "Syrian Arab Republic",
|
"Syrian Arab Republic": "Syrian Arab Republic",
|
||||||
"System": "System",
|
"System": "System",
|
||||||
"System Admin": "System Admin",
|
|
||||||
"System Config": "System Config",
|
"System Config": "System Config",
|
||||||
"System Disk": "System Disk",
|
"System Disk": "System Disk",
|
||||||
"System Info": "System Info",
|
"System Info": "System Info",
|
||||||
"System Load": "System Load",
|
"System Load": "System Load",
|
||||||
"System Reader": "System Reader",
|
|
||||||
"System Roles": "System Roles",
|
"System Roles": "System Roles",
|
||||||
"System Running Time": "System Running Time",
|
"System Running Time": "System Running Time",
|
||||||
"System is error, please try again later.": "System is error, please try again later.",
|
"System is error, please try again later.": "System is error, please try again later.",
|
||||||
|
@ -76,7 +76,6 @@
|
|||||||
"Additional routes announced to the instance, one entry per line(e.g. 192.168.200.0/24,10.56.1.254)": "云主机额外路由,每行一条(例如: 192.168.200.0/24,10.56.1.254)",
|
"Additional routes announced to the instance, one entry per line(e.g. 192.168.200.0/24,10.56.1.254)": "云主机额外路由,每行一条(例如: 192.168.200.0/24,10.56.1.254)",
|
||||||
"Additional routes announced to the instance, one entry per line(e.g. {ip})": "云主机额外路由,每行一条(例如: {ip})",
|
"Additional routes announced to the instance, one entry per line(e.g. {ip})": "云主机额外路由,每行一条(例如: {ip})",
|
||||||
"Addresses": "地址",
|
"Addresses": "地址",
|
||||||
"Admin": "管理员",
|
|
||||||
"Admin State": "管理状态",
|
"Admin State": "管理状态",
|
||||||
"Admin Status": "管理状态",
|
"Admin Status": "管理状态",
|
||||||
"Administrator": "管理平台",
|
"Administrator": "管理平台",
|
||||||
@ -246,7 +245,6 @@
|
|||||||
"Block Device Mapping": "创建块设备中",
|
"Block Device Mapping": "创建块设备中",
|
||||||
"Block Migrate": "块迁移",
|
"Block Migrate": "块迁移",
|
||||||
"Block Storage Services": "块存储服务",
|
"Block Storage Services": "块存储服务",
|
||||||
"Block Storage service:": "块存储服务(cinder):",
|
|
||||||
"Blocked": "",
|
"Blocked": "",
|
||||||
"Bolivia": "玻利维亚",
|
"Bolivia": "玻利维亚",
|
||||||
"Boot Device": "引导设备",
|
"Boot Device": "引导设备",
|
||||||
@ -394,7 +392,6 @@
|
|||||||
"Compute Stop Instance": "关闭",
|
"Compute Stop Instance": "关闭",
|
||||||
"Compute Suspend Instance": "云主机挂起",
|
"Compute Suspend Instance": "云主机挂起",
|
||||||
"Compute Unpause Instance": "恢复",
|
"Compute Unpause Instance": "恢复",
|
||||||
"Compute service:": "计算服务(nova):",
|
|
||||||
"Conductor Live Migrate Instance": "执行热迁移实例",
|
"Conductor Live Migrate Instance": "执行热迁移实例",
|
||||||
"Conductor Live Resize Instance": "执行在线配置调整",
|
"Conductor Live Resize Instance": "执行在线配置调整",
|
||||||
"Conductor Migrate Server": "执行迁移服务器",
|
"Conductor Migrate Server": "执行迁移服务器",
|
||||||
@ -1084,7 +1081,6 @@
|
|||||||
"Iceland": "冰岛",
|
"Iceland": "冰岛",
|
||||||
"Identifier of the physical port on the switch to which node’s port is connected to": "节点端口所连接的交换机物理端口ID",
|
"Identifier of the physical port on the switch to which node’s port is connected to": "节点端口所连接的交换机物理端口ID",
|
||||||
"Identity": "身份管理",
|
"Identity": "身份管理",
|
||||||
"Identity service:": "身份服务(keystone):",
|
|
||||||
"If \"Enable\" fails to roll back, the resource will be deleted after the creation fails; if \"Disable\" fails to roll back, the resource will be retained after the creation fails.": "若“启用”失败回滚,创建失败后会删除资源;若“禁用”失败回滚,创建失败后会保留资源。",
|
"If \"Enable\" fails to roll back, the resource will be deleted after the creation fails; if \"Disable\" fails to roll back, the resource will be retained after the creation fails.": "若“启用”失败回滚,创建失败后会删除资源;若“禁用”失败回滚,创建失败后会保留资源。",
|
||||||
"If OS is Linux, system will reset root password, if OS is Windows, system will reset Administrator password.": "如果操作系统是Linux,系统会修改root用户密码,如果是Windows,系统会修改Administrator用户密码。",
|
"If OS is Linux, system will reset root password, if OS is Windows, system will reset Administrator password.": "如果操作系统是Linux,系统会修改root用户密码,如果是Windows,系统会修改Administrator用户密码。",
|
||||||
"If an instance is using this flavor, deleting it will cause the instance's flavor data to be missing. Are you sure to delete {name}?": "若有云主机正在使用此 flavor,删除会导致云主机的 flavor 数据缺失,确定删除 {name} ?",
|
"If an instance is using this flavor, deleting it will cause the instance's flavor data to be missing. Are you sure to delete {name}?": "若有云主机正在使用此 flavor,删除会导致云主机的 flavor 数据缺失,确定删除 {name} ?",
|
||||||
@ -1114,9 +1110,9 @@
|
|||||||
"Image Size": "镜像大小",
|
"Image Size": "镜像大小",
|
||||||
"Image Snapshot Pending": "镜像快照等待上传",
|
"Image Snapshot Pending": "镜像快照等待上传",
|
||||||
"Image Uploading": "镜像上传中",
|
"Image Uploading": "镜像上传中",
|
||||||
"Image service:": "镜像服务(glance):",
|
|
||||||
"Immediate effect": "即时生效",
|
"Immediate effect": "即时生效",
|
||||||
"Immediately delete": "立即删除",
|
"Immediately delete": "立即删除",
|
||||||
|
"Implied Roles": "隐含角色",
|
||||||
"Import Keypair": "导入密钥",
|
"Import Keypair": "导入密钥",
|
||||||
"Import Metadata": "导入元数据",
|
"Import Metadata": "导入元数据",
|
||||||
"Import metadata": "导入元数据",
|
"Import metadata": "导入元数据",
|
||||||
@ -1483,7 +1479,6 @@
|
|||||||
"Network topology page": "网络拓扑页面",
|
"Network topology page": "网络拓扑页面",
|
||||||
"Networking": "创建网络中",
|
"Networking": "创建网络中",
|
||||||
"Networking *": "网络 *",
|
"Networking *": "网络 *",
|
||||||
"Networking service:": "网络服务(neutron):",
|
|
||||||
"Networks": "网络",
|
"Networks": "网络",
|
||||||
"Neutron Agent Detail": "网络服务详情",
|
"Neutron Agent Detail": "网络服务详情",
|
||||||
"Neutron Agents": "网络服务",
|
"Neutron Agents": "网络服务",
|
||||||
@ -1580,7 +1575,6 @@
|
|||||||
"Orchestration": "资源编排",
|
"Orchestration": "资源编排",
|
||||||
"Orchestration Services": "编排服务",
|
"Orchestration Services": "编排服务",
|
||||||
"Orchestration information": "编排信息",
|
"Orchestration information": "编排信息",
|
||||||
"Orchestration service:": "编排服务(heat):",
|
|
||||||
"Origin File Name": "原始文件名称",
|
"Origin File Name": "原始文件名称",
|
||||||
"Original Password": "原始密码",
|
"Original Password": "原始密码",
|
||||||
"Other Protocol": "其他协议",
|
"Other Protocol": "其他协议",
|
||||||
@ -1651,7 +1645,6 @@
|
|||||||
"Physical Node": "物理节点",
|
"Physical Node": "物理节点",
|
||||||
"Physical Storage Usage": "物理存储使用量",
|
"Physical Storage Usage": "物理存储使用量",
|
||||||
"Pitcairn": "皮特凯恩岛",
|
"Pitcairn": "皮特凯恩岛",
|
||||||
"Placement service:": "放置服务(placement):",
|
|
||||||
"Platform Info": "平台概况",
|
"Platform Info": "平台概况",
|
||||||
"Please confirm your password!": "请确认您的密码",
|
"Please confirm your password!": "请确认您的密码",
|
||||||
"Please enter JSON in the correct format!": "请输入正确格式的JSON!",
|
"Please enter JSON in the correct format!": "请输入正确格式的JSON!",
|
||||||
@ -1767,16 +1760,13 @@
|
|||||||
"Profile": "概要",
|
"Profile": "概要",
|
||||||
"Progress": "进度",
|
"Progress": "进度",
|
||||||
"Project": "项目",
|
"Project": "项目",
|
||||||
"Project Admin": "项目管理权限",
|
|
||||||
"Project Detail": "项目详情",
|
"Project Detail": "项目详情",
|
||||||
"Project ID": "项目ID",
|
"Project ID": "项目ID",
|
||||||
"Project ID/Name": "项目ID/名称",
|
"Project ID/Name": "项目ID/名称",
|
||||||
"Project Member": "项目使用权限",
|
|
||||||
"Project Name": "项目名称",
|
"Project Name": "项目名称",
|
||||||
"Project Num": "项目数量",
|
"Project Num": "项目数量",
|
||||||
"Project Quota": "项目配额",
|
"Project Quota": "项目配额",
|
||||||
"Project Range": "项目范围",
|
"Project Range": "项目范围",
|
||||||
"Project Reader": "项目只读权限",
|
|
||||||
"Project Scope": "所属项目",
|
"Project Scope": "所属项目",
|
||||||
"Project Scope (Project Name: Role Names)": "所属项目(项目名称:角色名称)",
|
"Project Scope (Project Name: Role Names)": "所属项目(项目名称:角色名称)",
|
||||||
"Project User": "项目用户",
|
"Project User": "项目用户",
|
||||||
@ -1837,7 +1827,6 @@
|
|||||||
"Read And Write": "",
|
"Read And Write": "",
|
||||||
"Read and write": "可读可写",
|
"Read and write": "可读可写",
|
||||||
"Read only": "只读",
|
"Read only": "只读",
|
||||||
"Reader": "只读",
|
|
||||||
"Real Name": "真实姓名",
|
"Real Name": "真实姓名",
|
||||||
"Reason": "原因",
|
"Reason": "原因",
|
||||||
"Reason: ": "原因:",
|
"Reason: ": "原因:",
|
||||||
@ -1922,7 +1911,6 @@
|
|||||||
"Role": "角色",
|
"Role": "角色",
|
||||||
"Role Detail": "角色详情",
|
"Role Detail": "角色详情",
|
||||||
"Role Name": "角色名称",
|
"Role Name": "角色名称",
|
||||||
"Role Power": "角色权限",
|
|
||||||
"Roles": "角色",
|
"Roles": "角色",
|
||||||
"Rollback Complete": "回滚完成",
|
"Rollback Complete": "回滚完成",
|
||||||
"Rollback Failed": "回滚失败",
|
"Rollback Failed": "回滚失败",
|
||||||
@ -2174,12 +2162,10 @@
|
|||||||
"Syncing": "同步中",
|
"Syncing": "同步中",
|
||||||
"Syrian Arab Republic": "叙利亚",
|
"Syrian Arab Republic": "叙利亚",
|
||||||
"System": "系统",
|
"System": "系统",
|
||||||
"System Admin": "系统管理权限",
|
|
||||||
"System Config": "系统配置",
|
"System Config": "系统配置",
|
||||||
"System Disk": "系统盘",
|
"System Disk": "系统盘",
|
||||||
"System Info": "系统信息",
|
"System Info": "系统信息",
|
||||||
"System Load": "系统负载",
|
"System Load": "系统负载",
|
||||||
"System Reader": "系统只读权限",
|
|
||||||
"System Roles": "系统角色",
|
"System Roles": "系统角色",
|
||||||
"System Running Time": "",
|
"System Running Time": "",
|
||||||
"System is error, please try again later.": "系统出错,请稍后再试。",
|
"System is error, please try again later.": "系统出错,请稍后再试。",
|
||||||
|
@ -12,31 +12,11 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
import React from 'react';
|
||||||
import { inject, observer } from 'mobx-react';
|
import { inject, observer } from 'mobx-react';
|
||||||
import globalRoleStore from 'stores/keystone/role';
|
|
||||||
import Base from 'containers/BaseDetail';
|
import Base from 'containers/BaseDetail';
|
||||||
import { toJS } from 'mobx';
|
|
||||||
import rolePermission from 'resources/keystone/role';
|
|
||||||
|
|
||||||
export class BaseDetail extends Base {
|
export class BaseDetail extends Base {
|
||||||
init() {
|
|
||||||
this.store = globalRoleStore;
|
|
||||||
}
|
|
||||||
|
|
||||||
fetchData = (params) => {
|
|
||||||
const { id } = this.props.match.params;
|
|
||||||
this.store
|
|
||||||
.fetchImpliedRoles({
|
|
||||||
id,
|
|
||||||
...params,
|
|
||||||
})
|
|
||||||
.catch(this.catch);
|
|
||||||
};
|
|
||||||
|
|
||||||
get detailData() {
|
|
||||||
return toJS(this.store.implyRoles);
|
|
||||||
}
|
|
||||||
|
|
||||||
get leftCards() {
|
get leftCards() {
|
||||||
const cards = [this.roleCard];
|
const cards = [this.roleCard];
|
||||||
return cards;
|
return cards;
|
||||||
@ -45,61 +25,24 @@ export class BaseDetail extends Base {
|
|||||||
get roleCard() {
|
get roleCard() {
|
||||||
const options = [
|
const options = [
|
||||||
{
|
{
|
||||||
label: t('Compute service:'),
|
label: t('Roles'),
|
||||||
dataIndex: 'nova',
|
dataIndex: 'implies',
|
||||||
render: (value) => {
|
render: (value) => {
|
||||||
return rolePermission[value] || '-';
|
if (!value || !value.length) {
|
||||||
},
|
return '-';
|
||||||
},
|
}
|
||||||
{
|
return value.map((it) => {
|
||||||
label: t('Block Storage service:'),
|
const { id, name } = it;
|
||||||
dataIndex: 'cinder',
|
const link = this.getLinkRender('roleDetail', name, { id });
|
||||||
render: (value) => {
|
return <div key={id}>{link}</div>;
|
||||||
return rolePermission[value] || '-';
|
});
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: t('Networking service:'),
|
|
||||||
dataIndex: 'neutron',
|
|
||||||
render: (value) => {
|
|
||||||
return rolePermission[value] || '-';
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: t('Image service:'),
|
|
||||||
dataIndex: 'glance',
|
|
||||||
render: (value) => {
|
|
||||||
return rolePermission[value] || '-';
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: t('Placement service:'),
|
|
||||||
dataIndex: 'placement',
|
|
||||||
render: (value) => {
|
|
||||||
return rolePermission[value] || '-';
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: t('Orchestration service:'),
|
|
||||||
dataIndex: 'heat',
|
|
||||||
render: (value) => {
|
|
||||||
return rolePermission[value] || '-';
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: t('Identity service:'),
|
|
||||||
dataIndex: 'keystone',
|
|
||||||
render: (value) => {
|
|
||||||
return rolePermission[value] || '-';
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
return {
|
return {
|
||||||
title: t('Resource'),
|
title: t('Implied Roles'),
|
||||||
options,
|
options,
|
||||||
labelCol: 12,
|
|
||||||
contentCol: 12,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ import { RoleStore } from 'stores/keystone/role';
|
|||||||
import Base from 'containers/TabDetail';
|
import Base from 'containers/TabDetail';
|
||||||
import User from '../../User';
|
import User from '../../User';
|
||||||
import Group from '../../UserGroup';
|
import Group from '../../UserGroup';
|
||||||
import impliedRole from './BaseDetail';
|
import BaseDetail from './BaseDetail';
|
||||||
import actionConfigs from '../actions';
|
import actionConfigs from '../actions';
|
||||||
|
|
||||||
export class RoleDetail extends Base {
|
export class RoleDetail extends Base {
|
||||||
@ -57,9 +57,9 @@ export class RoleDetail extends Base {
|
|||||||
get tabs() {
|
get tabs() {
|
||||||
const tabs = [
|
const tabs = [
|
||||||
{
|
{
|
||||||
title: t('Role Power'),
|
title: t('Base Info'),
|
||||||
key: 'role',
|
key: 'base',
|
||||||
component: impliedRole,
|
component: BaseDetail,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t('Binding User'),
|
title: t('Binding User'),
|
||||||
|
@ -12,17 +12,6 @@
|
|||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
const rolePermission = {
|
|
||||||
project_admin: t('Project Admin'),
|
|
||||||
project_reader: t('Project Reader'),
|
|
||||||
project_member: t('Project Member'),
|
|
||||||
system_admin: t('System Admin'),
|
|
||||||
system_reader: t('System Reader'),
|
|
||||||
admin: t('Admin'),
|
|
||||||
reader: t('Reader'),
|
|
||||||
member: t('Member'),
|
|
||||||
};
|
|
||||||
|
|
||||||
export const editable = (item) => {
|
export const editable = (item) => {
|
||||||
const { options: { immutable } = {} } = item || {};
|
const { options: { immutable } = {} } = item || {};
|
||||||
if (immutable || immutable === 'true' || immutable === 'True') {
|
if (immutable || immutable === 'true' || immutable === 'True') {
|
||||||
@ -30,5 +19,3 @@ export const editable = (item) => {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default rolePermission;
|
|
||||||
|
@ -28,34 +28,14 @@ export class RoleStore extends Base {
|
|||||||
@observable
|
@observable
|
||||||
systemRoles = new List();
|
systemRoles = new List();
|
||||||
|
|
||||||
@action
|
async detailDidFetch(item) {
|
||||||
async fetchImpliedRoles({ id }) {
|
const { id } = item;
|
||||||
const rolesResult = await this.client.implies.list(id);
|
const { role_inference: { implies = [] } = {} } =
|
||||||
const {
|
await this.client.implies.list(id);
|
||||||
role_inference: { implies },
|
return {
|
||||||
} = rolesResult;
|
...item,
|
||||||
const sources = [
|
implies,
|
||||||
'nova',
|
};
|
||||||
'neutron',
|
|
||||||
'glance',
|
|
||||||
'placement',
|
|
||||||
'heat',
|
|
||||||
'keystone',
|
|
||||||
'cinder',
|
|
||||||
];
|
|
||||||
const sourceRole = {};
|
|
||||||
sources.forEach((source) => {
|
|
||||||
const roles = [];
|
|
||||||
implies.forEach((it) => {
|
|
||||||
if (it.name.indexOf(source) !== -1) {
|
|
||||||
const role = it.name.split(`${source}_`)[1];
|
|
||||||
roles.push(role);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
sourceRole[source] = roles;
|
|
||||||
});
|
|
||||||
this.isLoading = false;
|
|
||||||
this.implyRoles = sourceRole;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkSystemRole = (roleItem) => {
|
checkSystemRole = (roleItem) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user