Hooks Introduction
Proof of concept (A veto hook)
Hooks Example - Assign a Unix id to each new group
Instructions to get started with Grouper and hooks.
package test; import edu.internet2.middleware.grouper.Group; import edu.internet2.middleware.grouper.GroupType; import edu.internet2.middleware.grouper.GroupTypeFinder; import edu.internet2.middleware.grouper.hooks.beans.HooksContext; import edu.internet2.middleware.grouper.hooks.beans.HooksGroupBean; /** * add a type after a group insert */ public class GroupAddFubHook extends edu.internet2.middleware.grouper.hooks.GroupHooks { /** * * @see edu.internet2.middleware.grouper.hooks.GroupHooks#groupPostInsert(edu.internet2.middleware.grouper.hooks.beans.HooksContext, edu.internet2.middleware.grouper.hooks.beans.HooksGroupBean) */ @SuppressWarnings("unchecked") @Override public void groupPostInsert(HooksContext hooksContext, HooksGroupBean postInsertBean) { super.groupPostInsert(hooksContext, postInsertBean); try { Group group = postInsertBean.getGroup(); GroupType fubGroup = GroupTypeFinder.find("fubGroup"); group.addType(fubGroup); group.setAttribute("gid", "2"); group.store(); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } } } |
[mchyzer@flash2 grouper]$ ant dist
gsh 0% group = addGroup("aStem", "aGroup5", "aGroup5"); group: name='aStem:aGroup5' displayName='aStem:aGroup5' uuid='b5552545-2ad2-462c-b5df-67586c987992' gsh 1% group.getTypes(); type: 'base' type: 'fubGroup' gsh 2% group.getAttributes(); java.util.HashMap: {extension=aGroup5, displayExtension=aGroup5, gid=2, name=aStem:aGroup5, displayName=aStem:aGroup5} gsh 3% |
*
<tomcat-users> <role rolename="grouper_user"/> <user username="mchyzer" password="whateveryouwant" roles="grouper_user"/> </tomcat-users> |