i have two document one is userRole(Role Master) and another is user(Role Asssociated with user),user can have multiple role and there is some permissions applied on user level and role level both , i want to fetch distinct permission from user and userRole for particular user and on associate multiple role on this user.
"userRole":{
"_id" : ObjectId("58902f6b5d474004b4034026"),
"roleName" : "Filler",
"permission" : {
"ActionPermissions" : {
"Incidence Management" : {
"Trouble Ticketing" : {
"Add Ticket" : {}
}
}
}
},
"associatePermission" : {
"ActionPermissions" : {
"Incidence Management" : {
"Trouble Ticketing" : {
"Add Ticket" : {},
"Bulk Closure" : true
},
"Ageing Report" : {
"Filter Report" : true
}
},
"Preventive Maintenance" : {
"Edit Ticket" : {
"Severity" : true
}
}
},
"DataPermissions" : {
"Incidence Management" : {
"Trouble Ticketing" : {
"Add Ticket" : {}
}
}
}
}
}
What I have tried:
"user": {
"_id" : ObjectId("58a29743f7d4180a4cae827e"),
"firstName" : "dileep",
"roles" : [
{
"roleName" : {
"_id" : "5890336b5d474004b403402c",
"roleName" : "Ceo"
},
"effectiveFrom" : "2017-02-16T18:30:00.000Z",
"effectiveTo" : "2017-02-28T18:30:00.000Z",
"id" : {}
},
{
"effectiveFrom" : "2017-02-16T18:30:00.000Z",
"effectiveTo" : ISODate("2017-02-15T18:30:00.000Z"),
"roleName" : "{\"_id\":\"5890335d5d474004b4034029\",\"roleName\":\"Engineer\"}"
},
{
"roleName" : {
"_id" : "5890336b5d474004b403402c",
"roleName" : "Ceo"
},
"effectiveFrom" : "2017-02-16T18:30:00.000Z",
"effectiveTo" : ISODate("2017-02-28T18:30:00.000Z"),
"id" : {}
},
{
"roleName" : {
"_id" : "589033795d474004b403402f",
"roleName" : "WebUser"
},
"id" : {}
},
{
"roleName" : {
"_id" : "58a69b9a93e8e20854282001",
"roleName" : "surbhi",
"roleDescription" : "surbhi"
},
"effectiveFrom" : "2017-02-23T18:30:00.000Z",
"id" : 5
},
{
"roleName" : {
"_id" : "58aef573d90ffd185c96bb65",
"roleName" : "ty",
"roleDescription" : ""
},
"effectiveFrom" : "2017-02-23T18:30:00.000Z",
"id" : 6
}
],
"groups" : [
{
"groupName" : {
"_id" : "5891d9e75d4740205401bd68",
"groupName" : "Power Vendor"
},
"effectiveFrom" : "2017-02-17T18:30:00.000Z",
"id" : 1,
"effectiveTo" : ISODate("2017-02-15T18:30:00.000Z")
},
{
"groupName" : {
"_id" : "5891d9f15d4740205401bd6b",
"groupName" : "Tower Co"
},
"effectiveFrom" : "2017-02-21T18:30:00.000Z",
"effectiveTo" : ISODate("2017-02-28T18:30:00.000Z"),
"id" : 2
},
{
"groupName" : {
"_id" : "5891d9f15d4740205401bd6b",
"groupName" : "Tower Co"
},
"effectiveFrom" : "2017-02-21T18:30:00.000Z",
"effectiveTo" : ISODate("2017-02-21T18:30:00.000Z"),
"id" : 2
},
{
"groupName" : {
"_id" : "58a6bfa3ea436926ac06a234",
"groupName" : "asdasd",
"groupDescription" : "asd"
},
"effectiveFrom" : "2017-02-27T18:30:00.000Z",
"id" : 4
},
{
"groupName" : {
"_id" : "58a6958e93e8e20854282000",
"groupName" : "anas",
"groupDescription" : "this group is made for testing purpose."
},
"effectiveFrom" : "2017-02-20T18:30:00.000Z",
"id" : 5,
"effectiveTo" : ISODate("2017-02-21T18:30:00.000Z")
},
{
"groupName" : {
"_id" : "58a69dbb93e8e20854282002",
"groupName" : "GP",
"groupDescription" : "gp is for test"
},
"effectiveFrom" : "2017-02-23T18:30:00.000Z",
"effectiveTo" : "2017-03-01T18:30:00.000Z",
"id" : 6
},
{
"effectiveFrom" : ISODate("2017-02-26T18:30:00.000Z"),
"groupName" : {
"groupName" : "Tower CoMPANY",
"_id" : "5891d9f15d4740205401bd6b"
},
"effectiveTo" : null,
"id" : 7
}
],
"profilePic" : "UserProfilePic-1487050584447.jpg",
"loginId" : "dileep123",
"password" : null,
"confirmPassword" : null,
"imeiNumber1" : "222222222222222222",
"middleName" : "kumara",
"lastName" : "saxenaaaaaa",
"primaryEmail" : "ok@gmail.com",
"primaryPhoneNumber" : "1111111111",
"associatePermission" : {
"ActionPermissions" : {
"Incidence Management" : {},
"User Management" : {
"Users" : {
"View" : true,
"Add" : true
}
}
},
"DataPermissions" : {}
}
}