Use a script to perform the following user access functions:
Create, find, or delete users
Create or find groups
The following sections describe user and group script functions and changing group membership:
The following sample script shows how to perform these functions. Read the comments to understand the purpose of each function.
// @debug off // Locate the groups and users elements. var groups = formula.Root.findElement( 'groups=Groups/security=Security root=Administration' ) var users = formula.Root.findElement( 'users=Users/security=Security/root=Administration' ) // Do we have the testGroup? If not, create the new group. try { formula.log.info( 'Finding group testGroup' ) formula.Root.findElement( 'group=testGroup/groups=Groups/security=Security/root=Administration' ) } catch( missing ) { formula.log.info( 'Group testGroup missing; creating...' ) groups.perform( session, 'LifeCycle|Create', [], [ 'testGroup', // Group name 'Test group description', // Group description '' ] ) // Group membership (comma-delimited list) } // Delete some users. var userNames = ['jim', 'anne', 'lisa', 'neil', 'john' ] for( var i = 0; i < userNames.length; ++i ) { try { // Find the user. formula.log.info( 'Finding user ' + userNames[i] ) var user = formula.Root.findElement( 'user=' + formula.util.encodeURL( userNames[i] ) + '/users=Users/security=Security/root=Administration' ) formula.log.info( 'Deleting user' ) user.perform( session, 'LifeCycle|Delete', [], [] ) } catch( missing ) { } } // Create some users. for( var i = 0; i < userNames.length; ++i ) { try { // Find the user. formula.log.info( 'Finding user ' + userNames[i] ) formula.Root.findElement( 'user=' + formula.util.encodeURL( userNames[i] ) + '/users=Users/security=Security/root=Administration' ) formula.log.info( 'Found existing user ' + userNames[i] ) } catch( missing ) { // Create the user. var memberOf = 'testGroup' + ( ( ( i % 2 ) == 1 ) ? ',users' : '' ) // Test for group membership formula.log.info( 'User ' + userNames[i] + ' missing; creating with groups: ' + memberOf + '...' ) users.perform( session, 'LifeCycle|Create', [], [ userNames[i], // User name 'password', // Password '', // Full name '', // email '', // phone '', // fax '', // pager memberOf // Group membership (comma-delimited list) ] ) } } // Now, set the user's profile to one we know (guest). var guest = formula.Root.findElement( 'user=guest/users=Users/security=Security/root=Administration' ) if( guest ) { var guestProfile = guest.profile formula.log.info( 'Setting profile to guest profile: ' + guestProfile ) for( var i = 0; i < userNames.length; ++i ) { formula.log.info( 'Updating profile for user ' + userNames[i] ) var user = formula.Root.findElement( 'user=' + formula.util.encodeURL( userNames[i] ) + '/users=Users/security=Security/root=Administration' ) user.profile = guestProfile } } formula.log.info( 'Done' )
To change a user’s group membership, use the following function and replace ‘group1, group2’ with actual group names:
user.perform( session, 'LifeCycle|SetGroupNames', [], ['group1,group2'] )
For example:
var tech = 'jim' var user = formula.Root.findElement( 'user=' + formula.util.encodeURL( tech ) + '/users=Users/security=Security/root=Administration' ) user.perform( session, 'LifeCycle|SetGroupNames', [], ['group1,group2'] )