In the following example a user is created. The code checks first if the user exists int he VDoc directory.
public void organization_createUser( IDirectoryModule directoryModule, IContext context, IOrganization organization ) throws DirectoryModuleException { // verifying if a user exists IUser user = directoryModule.getUserByLogin( "jbon" ); if ( user == null ) { // creating the user linked to an organization user = directoryModule.createUser( context, "jbon", "pwd", organization ); user.setFirstName( "Jean" ); user.setLastName( "Bon" ); user.setEmail( "jbon@charcuterie.com" ); } }
In the following example a group is created. The code uses the getGroup function to check if the group already exists before creating it.
public void organization_createGroup( IDirectoryModule directoryModule, IContext context, IOrganization organization ) throws DirectoryModuleException { // verifying if the group exists IGroup managers = directoryModule.getGroup( context, organization, "Managers" ); if ( managers == null ) // creating a group inside the organization managers = directoryModule.createGroup( context, organization, "Managers" ); }
The following code shows the possibilities of association between users and groups. It shows also how to check the belonging of a user to a group or another group.
public void organization_addGroupAndMember( IDirectoryModule directoryModule, IContext context, IOrganization organization ) throws DirectoryModuleException { // recovering a group IGroup group = directoryModule.getGroup( context, organization, "Managers" ); // recovering a user IUser user = directoryModule.getUserByLogin( "jbon" ); // checking the belonging of a user to a group if ( !user.isMemberOf( group, false ) ) // adding the user to the group's members group.addMember( user ); // recovering a group in the directory IGroup nextGroup = directoryModule.getGroup( context, organization, "Managers" ); // checking the belonging to a group or another group if ( !nextGroup.isChildOf( group, false ) ) // adding the user to the group's child group.addChild( nextGroup ); }