将权限阵列转换为JSON
我正在尝试在我的Nestjs项目中实现基于角色的访问控制,并且我有一个权限阵列如下
let permissions = [
"newsfeeds-alerts-view",
"settings-group_details-view",
"settings-group_details-edit",
"settings-privileges-view",
"settings-privileges-edit",
"settings-my_groups-create",
"settings-my_groups-view",
"settings-my_groups-edit",
"settings-my_groups-delete",
"settings-users-view",
"settings-users-edit",
"settings-users-delete",
"notifications-email-create",
"notifications-jira-create",
"notifications-jira-view",
"notifications-non_itr_ticket-create",
"notifications-non_itr_ticket-update",
"workspace_dashboard-worksapce-create",
"workspace_dashboard-worksapce-view",
"dashboard-geographic-maps-view",
"dashboard-geographic-report-itr-view",
"configurations-create_alerts-create",
"configurations-notifications-jira-create"
];
我想从上面的数组创建一个JSON字符串,如下
{
"newsfeeds": {
"alerts": [
{
"name": "view"
}
]
},
"settings": {
"group_details": [
{
"name": "view"
},
{
"name": "edit"
}
],
"privileges": [
{
"name": "view"
},
{
"name": "edit"
}
],
"my_groups": [
{
"name": "view"
},
{
"name": "edit"
},
{
"name": "delete"
}
],
"users": [
{
"name": "view"
},
{
"name": "edit"
},
{
"name": "delete"
}
]
},
"notifications": {
"email": [
{
"name": "create"
}
],
"jira": [
{
"name": "create"
},
{
"name": "view"
}
],
"non_itr_ticket": [
{
"name": "create"
},
{
"name": "update"
}
]
},
"workspace_dashboard": {
"worksapce": [
{
"name": "create"
},
{
"name": "view"
}
]
},
"dashboard": {
"geographic": {
"maps": [
{
"name": "view"
}
],
"report": {
"itr": [
{
"name": "view"
}
]
}
},
"configurations": {
"create_alerts": [
{
"name": "create"
}
],
"notifications": {
"jira": [
{
"name": "create"
}
]
}
}
}
}
权限阵列是动态的。我需要在一个对象下将所有常见的权限分组。
如何实现这一目标,任何简单的方法可用?
I'm trying to implement Role Based Access control in my nestjs project and I have a permission array as follows
let permissions = [
"newsfeeds-alerts-view",
"settings-group_details-view",
"settings-group_details-edit",
"settings-privileges-view",
"settings-privileges-edit",
"settings-my_groups-create",
"settings-my_groups-view",
"settings-my_groups-edit",
"settings-my_groups-delete",
"settings-users-view",
"settings-users-edit",
"settings-users-delete",
"notifications-email-create",
"notifications-jira-create",
"notifications-jira-view",
"notifications-non_itr_ticket-create",
"notifications-non_itr_ticket-update",
"workspace_dashboard-worksapce-create",
"workspace_dashboard-worksapce-view",
"dashboard-geographic-maps-view",
"dashboard-geographic-report-itr-view",
"configurations-create_alerts-create",
"configurations-notifications-jira-create"
];
I want to create a JSON string from the above array as follows
{
"newsfeeds": {
"alerts": [
{
"name": "view"
}
]
},
"settings": {
"group_details": [
{
"name": "view"
},
{
"name": "edit"
}
],
"privileges": [
{
"name": "view"
},
{
"name": "edit"
}
],
"my_groups": [
{
"name": "view"
},
{
"name": "edit"
},
{
"name": "delete"
}
],
"users": [
{
"name": "view"
},
{
"name": "edit"
},
{
"name": "delete"
}
]
},
"notifications": {
"email": [
{
"name": "create"
}
],
"jira": [
{
"name": "create"
},
{
"name": "view"
}
],
"non_itr_ticket": [
{
"name": "create"
},
{
"name": "update"
}
]
},
"workspace_dashboard": {
"worksapce": [
{
"name": "create"
},
{
"name": "view"
}
]
},
"dashboard": {
"geographic": {
"maps": [
{
"name": "view"
}
],
"report": {
"itr": [
{
"name": "view"
}
]
}
},
"configurations": {
"create_alerts": [
{
"name": "create"
}
],
"notifications": {
"jira": [
{
"name": "create"
}
]
}
}
}
}
The permission array is dynamic. I need to group all common permission under one object.
How to achieve this, any easy methods available ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
array.Reduce
string.string.split
实现您所需的结果Using
array.reduce
string.split
to achieve your desired result