Сформировать один массив роль\права из 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, время: 01:14. |