考虑以下授权json
{
"users" : ["sys_adm"]
,"Sales" : {
"users" : ["sales_adm"]
,"Report" : {
"users" : ["sales_rep_adm"]
,"companies" : [
{
"name" :"XPT"
,"users" : ["sales_rep_xpt_adm"]
,"contracts" : {
"0000200022" : {
"name" : "My contract number 0000200022"
,"users": ["simple_user"]
}
}
},
{
"name" : "QWR"
,"users" : []
,"contracts" : {
"0000200033" : {
"name" : "My contract number 0000200033"
,"users": ["simple_user"]
}
}
}
]
}
}
}
我正在尝试开发一个授权方案,但是我有很多困难可以通过弹性查询来提取答案。
如果我使用过滤器用户 simple_user 来退还合同,无论公司名称是什么,那么答案将是 0000200022 和 0000200033 。我怎么能做到这一点?
如果我使用 sys_adm 作为过滤器来退回合同,而不考虑公司名称,则答案将是 0000200022 和 0000200033 。我怎么能做到这一点?
如果我使用过滤器用户 sales_adm 仅返回公司名称,那么答案将是 XPT 和 QWR 。我怎么能做到这一点?
对于上述所有问题,请考虑您不知道用户是哪种结构,并且授权具有自上而下的概念,这意味着sys_adm可以访问下面的所有结构,其他用户也可以进行访问。
我真的很感谢您的帮助,甚至回答不可能的问题:)