Сформировать один массив роль\права из 3х
Здравствуйте!!!
Подскажите как можно сформировать из данных массивов полученных с апи:
const roleRight = [
{
"Id": 1,
"RoleId": 1,
"RightId": 1
},
{
"Id": 2,
"RoleId": 1,
"RightId": 2
},
{
"Id": 3,
"RoleId": 2,
"RightId": 2
},
{
"Id": 4,
"RoleId": 3,
"RightId": 1
},
];
const roles = [
{
"Id": 1,
"Name": "Администратор",
},
{
"Id": 2,
"Name": "Модератор",
},
{
"Id": 3,
"Name": "Пользователь",
},
];
const rights = [
{
"Id": 1,
"Name": "Контакты - Просмотр",
},
{
"Id": 2,
"Name": "Контакты - Редактирование",
}
];
Пимерно такой т е основываясь на roleRights сформировать массив обьестов где содержится Роль и ее права.
const roles = [
{
"Id": 1,
"Name": "Администратор",
"right": [
{
"Id": 1,
"Name": "Контакты - Просмотр",
},
{
"Id": 2,
"Name": "Контакты - Редактирование",
}
]
},
{
"Id": 2,
"Name": "Модератор",
"right": [
{
"Id": 1,
"Name": "Контакты - Просмотр",
},
{
"Id": 2,
"Name": "Контакты - Редактирование",
}
]
},
];
|
jabbascript,
непонятно как формируется массив прав ... |
рони,
наверное так - roles[i][RoleId], соответственно и права по RightId |
Цитата:
|
рони,
roles[index][Id] == roleRight[index][RoleId] = "Администратор", ... Соответственно и права но уже по равенству RightId и Id из rights. Видимо так. Как только проверять такие права, не представляю. |
laimas,
:-? нет массива индексов прав, нет массива правил либо здесь "RightId": 1 массив либо тут немассив "right": [] |
Вообще, нужно не const roles модифицировать (да и не получится), а обходить первичный объект, а это const roleRight, вот это более всего отвечает первичной таблице в базе - юзеры. А roles и rights, это связанные таблицы описывающие роли и их права.
И все будет связываться, иначе нет логики. |
рони, надо конечно автора заставить высказаться, но по идее так должно быть:
Код:
users |
Это правильная структура. Тут 1на таблица содержит идишники роли и права.
{ "Id": 1, "RoleId": 1, роль с ид 1 "RightId": 1 право с ид 2 } Какбы у меня Odata и есть три урла /RoleRight /Role /Rights. |
По представленным данным их никак не связать в то, что именно вы хотите получить.
|
| Часовой пояс GMT +3, время: 09:11. |