从文档中提取自上而下的答案

时间:2018-08-26 22:46:31

标签: elasticsearch

考虑以下授权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可以访问下面的所有结构,其他用户也可以进行访问。

我真的很感谢您的帮助,甚至回答不可能的问题:)

0 个答案:

没有答案