[midPoint] Writing a query using the ouput of an other query.
Tony Tkacik
tony.tkacik at evolveum.com
Wed Jun 8 11:40:56 CEST 2022
Hi Sebastien,
In your case since you use orgRef with scope ONE_LEVEL, this could be easily rewritten to ref filter with dereference (aka "JOIN", see for [ https://docs.evolveum.com/midpoint/reference/concepts/query/query-api/#special-symbols-in-item-paths | https://docs.evolveum.com/midpoint/reference/concepts/query/query-api/#special-symbols-in-item-paths ] ).
The filter you are looking for is following:
Object Type: UserType
<query>
<filter>
<ref>
<path>parentOrgRef/@/roleMembershipRef</path>
<value oid="o id of the meta role " />
</ref>
</filter>
</query>
Notice the path and @ symbol, in this case this means we are looking into parentOrgRef, the @ symbol represents dereference (aka use values from ref target) and now we can use roleMembershipRef in ref filter.
This filter is translated into following hibernate query in Query Playground:
select u.oid, u.fullObject from RUser u
left join u.parentOrgRef p
left join p.target t
left join t.roleMembershipRef r
where
(
r.targetOid = :targetOid and
r.relation in (:relation)
)
I tested this filter on 4.0.4 and it works that it selects all users in organization units, which has assigned meta role.
Hope this helps.
Anton Tkacik
From: "midPoint General Discussion" <midpoint at lists.evolveum.com>
To: "midPoint General Discussion" <midpoint at lists.evolveum.com>
Cc: "Sébastien MARBRIER" <smarbrier at positivethinking.tech>
Sent: Tuesday, June 7, 2022 5:07:20 PM
Subject: [midPoint] Writing a query using the ouput of an other query.
Hello dear midpoint users.
I need to list the users which are a members of organizations which are member of a given metarole.
I can get the list of the organizations using this simple query in the query playground:
Object type : OrgType
<query>
<filter>
<ref>
<path>roleMembershipRef</path>
<value oid="oid of the meta role/>
</ref>
</filter>
</query>
I can also get of the users of such an organization using this other simple query:
Object Type : UserType
<query>
<filter>
<org>
<orgRef>
<oid>oid of an organization</oid>
</orgRef>
<scope>ONE_LEVEL</scope>
</org>
</filter>
</query>
However I am clueless how it is possible to mixing those two queries to automate the listing process.
Doing this by hand is a bit too tedious because there too many organizations.
Alternative suggestions are welcome.
I am using a 4.0.1 version of midpoint.
Best regards,
[ https://www.positivethinking.tech/ ]
Sébastien Marbrier | Senior IT Consultant
[ mailto:smarbrier at positivethinking.tech | smarbrier at positivethinking.tech ]
Tel. +41 21 601 81 00
[ https://teams.microsoft.com/l/chat/0/0?users=smarbrier@positivethinking.tech ]
[ https://teams.microsoft.com/l/chat/0/0?users=smarbrier@positivethinking.tech | ]
[ https://teams.microsoft.com/l/chat/0/0?users=smarbrier@positivethinking.tech | Chat
with me on Teams ]
[ https://www.linkedin.com/company/the-positive-thinking-company/ ] [ https://www.instagram.com/positivethinkingcompany/ ] [ https://twitter.com/PTC_Tech ] [ https://youtube.com/channel/UCfaImWa6r0IoZoUYLhbiF7w ]
Avenue de cour, 135 – 1007 Lausanne
[ https://www.positivethinking.tech/ | www.positivethinking.tech ]
Positive Thinking Company puts security at a high priority in its conduct of business. Therefore, we have put our best efforts into ensuring that this email and its attached documents are error and virus-free. Nonetheless, full security of emails/documents cannot be ensured. Therefore, the recipient is responsible for checking the email/documents for threats with its own security measures, prior to opening it. Positive Thinking Company does not accept liability for any damage inflicted by using the content of this email/documents. If you are not the intended recipient, please notify the sender and delete this email/document.
_______________________________________________
midPoint mailing list
midPoint at lists.evolveum.com
https://lists.evolveum.com/mailman/listinfo/midpoint
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220608/3df5469d/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 7735 bytes
Desc: image001.png
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220608/3df5469d/attachment-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 686 bytes
Desc: image002.png
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220608/3df5469d/attachment-0007.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.png
Type: image/png
Size: 2337 bytes
Desc: image003.png
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220608/3df5469d/attachment-0008.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image004.png
Type: image/png
Size: 2756 bytes
Desc: image004.png
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220608/3df5469d/attachment-0009.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image005.png
Type: image/png
Size: 2358 bytes
Desc: image005.png
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220608/3df5469d/attachment-0010.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image006.png
Type: image/png
Size: 2669 bytes
Desc: image006.png
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20220608/3df5469d/attachment-0011.png>
More information about the midPoint
mailing list