<div>The Search script should return the ID, Name and Members of the group. It doesn't matter if you use 1, 2 or more queries but you should return an array with one row for each group where the members attribute is an array too. </div><div><br></div><div>Can you copy the sql error of the query with the where filter?</div><div><br></div><div>Regards,</div><div><br></div><div><br></div><div>Nicolás </div><div><br></div><div><br><div class="gmail_quote"><div>El El mié, 14 de dic. de 2016 a las 09:12, Wojciech Staszewski <<a href="mailto:wojciech.staszewski@diagnostyka.pl">wojciech.staszewski@diagnostyka.pl</a>> escribió:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Just 4 more questions.<br class="gmail_msg"><br><br class="gmail_msg"><br>I have a little trouble with search script.<br class="gmail_msg"><br><br class="gmail_msg"><br>1. Searching associated groups: can it be in a separate sql query in<br class="gmail_msg"><br>__ACCOUNT__ case?<br class="gmail_msg"><br>2. It must return: "__UID__", "__NAME__" and "groups" attributes, right?<br class="gmail_msg"><br>(the list of groups)<br class="gmail_msg"><br>3. Or it must be one single guery returning all attributes including<br class="gmail_msg"><br>group membership? But then it will return more than one row...<br class="gmail_msg"><br><br class="gmail_msg"><br>4. How to construct the SQL query using "where" template?<br class="gmail_msg"><br>I tried to put something like this:<br class="gmail_msg"><br><br class="gmail_msg"><br>"select <a href="http://g.name" rel="noreferrer" class="gmail_msg" target="_blank">g.name</a> as name, u.alias from users_groups ug, usrgrp g, users u"<br class="gmail_msg"><br>+ where + " AND g.usrgrpid = ug.usrgrpid and u.userid = ug.userid"<br class="gmail_msg"><br><br class="gmail_msg"><br>(msg:Search WHERE clause is:  WHERE u.userid = 1)<br class="gmail_msg"><br><br class="gmail_msg"><br>But i got SQL syntax error. I log this query, Ctrl+C from log, Ctrl+V in<br class="gmail_msg"><br>SQL console and it works.<br class="gmail_msg"><br><br class="gmail_msg"><br>Thanks,<br class="gmail_msg"><br>Best regards, WS<br class="gmail_msg"><br><br class="gmail_msg"><br>W dniu 13.12.2016 o 18:30, Wojciech Staszewski pisze:<br class="gmail_msg"><br>> Thank you very much!<br class="gmail_msg"><br>> Regards,  WS<br class="gmail_msg"><br>><br class="gmail_msg"><br>> Dnia poniedziałek, 12 grudnia 2016 21:45:00 CET Nicolas Rossi pisze:<br class="gmail_msg"><br>>> Hi, you have to add the association between Users and Groups. It's<br class="gmail_msg"><br>>> something like that:<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> <association><br class="gmail_msg"><br>>> <ref>ri:GroupObjectClass</ref><br class="gmail_msg"><br>>> <kind>entitlement</kind><br class="gmail_msg"><br>>> <intent>default</intent><br class="gmail_msg"><br>>> <tolerant>false</tolerant><br class="gmail_msg"><br>>> <direction>subjectToObject</direction><br class="gmail_msg"><br>>> <associationAttribute>ri:groups</associationAttribute><br class="gmail_msg"><br>>> <valueAttribute>icfs:uid</valueAttribute><br class="gmail_msg"><br>>> <shortcutAssociationAttribute>ri:members</shortcutAssociationAttribute><br class="gmail_msg"><br>>> <shortcutValueAttribute>icfs:uid</shortcutValueAttribute><br class="gmail_msg"><br>>> </association><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> You can find more information about the association and the tolerant<br class="gmail_msg"><br>>> parameter here:<br class="gmail_msg"><br>>> <a href="https://wiki.evolveum.com/display/midPoint/Entitlements#Entitlements-AssociationDefinition" rel="noreferrer" class="gmail_msg" target="_blank">https://wiki.evolveum.com/display/midPoint/Entitlements#Entitlements-AssociationDefinition</a><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> Inside your Update script the operation should be ADD_ATTRIBUTE_VALUE for<br class="gmail_msg"><br>>> objectClass __ACCOUNT__ and the attribute received should be "groups":<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>     case "ADD_ATTRIBUTE_VALUES":<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>         if(objectClass == "__ACCOUNT__")<br class="gmail_msg"><br>>>         {<br class="gmail_msg"><br>>>             for(String group : attributes.get("groups"))<br class="gmail_msg"><br>>>             {<br class="gmail_msg"><br>>>                 def existingEntitlement = sql.rows("SELECT 1 FROM<br class="gmail_msg"><br>>> UserGroups WHERE user_id=? AND group_id=?",[uid as String, group as<br class="gmail_msg"><br>>> String]);<br class="gmail_msg"><br>>>                 if(existingEntitlement.isEmpty())<br class="gmail_msg"><br>>>                 {<br class="gmail_msg"><br>>>                     <a href="http://log.info" rel="noreferrer" class="gmail_msg" target="_blank">log.info</a>("Sample - Adding entitlement ${group} to user<br class="gmail_msg"><br>>> ${uid}");<br class="gmail_msg"><br>>>                     sql.execute("insert into UserGroups (user_id, group_id)<br class="gmail_msg"><br>>> values (" + uid + "," + group + ")");<br class="gmail_msg"><br>>>                 }<br class="gmail_msg"><br>>>                 else<br class="gmail_msg"><br>>>                 {<br class="gmail_msg"><br>>>                     <a href="http://log.info" rel="noreferrer" class="gmail_msg" target="_blank">log.info</a>("Sample - Skipping assignment because user<br class="gmail_msg"><br>>> ${uid} already has group ${group}");<br class="gmail_msg"><br>>>                 }<br class="gmail_msg"><br>>>             }<br class="gmail_msg"><br>>>         }<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> You should also handle the REMOVE_ATTRIBUTE_VALUES with the same logic.<br class="gmail_msg"><br>>> Radovan and Ivan have helped us few weeks ago with the ScriptedSQL<br class="gmail_msg"><br>>> resource. You can find the conversation in the mailing list. I am sure it<br class="gmail_msg"><br>>> will help you too.<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> Regards,<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> Ing Nicolás Rossi<br class="gmail_msg"><br>>> Identicum S.A.<br class="gmail_msg"><br>>> Jorge Newbery 3226<br class="gmail_msg"><br>>> Tel: +54 (11) 4552-3050<br class="gmail_msg"><br>>> <a href="http://www.identicum.com" rel="noreferrer" class="gmail_msg" target="_blank">www.identicum.com</a><br class="gmail_msg"><br>>><br class="gmail_msg"><br>>> On Mon, Dec 12, 2016 at 7:11 PM, Wojciech Staszewski <<br class="gmail_msg"><br>>> <a href="mailto:wojciech.staszewski@diagnostyka.pl" class="gmail_msg" target="_blank">wojciech.staszewski@diagnostyka.pl</a>> wrote:<br class="gmail_msg"><br>>><br class="gmail_msg"><br>>>> Hello,<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>> I'm playing with ScriptedSQL resource, based on Evolveum example from<br class="gmail_msg"><br>>>> Github.<br class="gmail_msg"><br>>>> I'm able to list/add/remove users/groups and enable/disable accounts.<br class="gmail_msg"><br>>>> Great.<br class="gmail_msg"><br>>>> But now I want to apply an assignment (a group) to user. Unfortunately<br class="gmail_msg"><br>>>> "Update_Script.groovy" is incomplete,<br class="gmail_msg"><br>>>> ADD_ATTRIBUTE_VALUES and REMOVE_ATTRIBUTE_VALUES cases are empty.<br class="gmail_msg"><br>>>> Where can I find some examples?<br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>>> Thanks a lot!<br class="gmail_msg"><br>>>> WS<br class="gmail_msg"><br>>>> _______________________________________________<br class="gmail_msg"><br>>>> midPoint mailing list<br class="gmail_msg"><br>>>> <a href="mailto:midPoint@lists.evolveum.com" class="gmail_msg" target="_blank">midPoint@lists.evolveum.com</a><br class="gmail_msg"><br>>>> <a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a><br class="gmail_msg"><br>>>><br class="gmail_msg"><br>>><br class="gmail_msg"><br>><br class="gmail_msg"><br>><br class="gmail_msg"><br>_______________________________________________<br class="gmail_msg"><br>midPoint mailing list<br class="gmail_msg"><br><a href="mailto:midPoint@lists.evolveum.com" class="gmail_msg" target="_blank">midPoint@lists.evolveum.com</a><br class="gmail_msg"><br><a href="http://lists.evolveum.com/mailman/listinfo/midpoint" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.evolveum.com/mailman/listinfo/midpoint</a><br class="gmail_msg"><br></blockquote></div></div>