The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

VCS::CMSynergy::Users - Perl interface to CM Synergy user administration

SYNOPSIS

  use VCS::CMSynergy::Users;

  $hash_ref = $ccm->users;
  $ccm->users(\%user_roles);
  $ccm->add_user($user, @roles);
  $ccm->delete_user($user);
  @roles = $ccm->get_roles($user);
  $ccm->add_roles($user, @roles);
  $ccm->delete_roles($user, @roles);

DESCRIPTION

NOTE: This interface is subject to change.

  use VCS::CMSynergy;
  use VCS::CMSynergy::Users;

  my $ccm = VCS::CMSynergy->new(database => "/ccmdb/test/tut62/db");

  $ccm->add_user('jluser', qw(developer build_mgr));

METHODS

users

  $hash_ref = $ccm->users;
  $ccm->users($hash_ref);

The first form gets the table of users and their roles as a hash ref. The keys are the user names and the values are array refs containing the user's roles, e.g.

  $hash_ref = {
    'jluser'    => [ qw(developer) ],
    'psizzle'   => [ qw(developer build_mgr) ],
    ...
    };

You need not be in the ccm_admin role to use this form (because it is not implemented via ccm users).

The second form replaces the existing table of users and their roles with the contents of $hashref. Duplicate roles will be removed from $hashref's values before writing back the table. You must be in the ccm_admin role to use this form.

All operations try to preserve the order of roles (add_roles appends the roles that are actually new for the user). This mostly matters for the role listed first for a user, as CM Synergy uses this as default role for the user's session when the user calls ccm start without the -r option.

If you have one of the modules Tie::Hash::Indexed or Tie::IxHash installed, than the value returned by "users" is actually a reference to a tied hash that preserves the insertion order of keys. In this case, the order of hash keys reflects the order of user lines in the users "file".

Note that

  $ccm->users($ccm->users);

always results in a functionally equivalent users table. The order of user lines may have changed, though, unless an order preserving hash was used as decribed above.

Note: For typical CM Synergy administrator usage it is usually more convenient to use one of the methods below.

add_user

  $ccm->add_user($user, @roles);

Adds the user with the given roles. If the user already exists her roles will be reset to the ones given.

delete_user

  $ccm->delete_user($user);

Deletes the user. No error is signalled if the user doesn't exist.

add_roles

  $ccm->add_roles($user, @roles);

Grants the given roles to the user. It is no error if the user already has some of the given rules.

delete_roles

  $ccm->delete_roles($user, @roles);

Revokes the given roles from the user. It is no error if the user doesn't have any of the given rules.

get_roles

  @roles = $ccm->get_roles($user);

Returns the roles for the user. Returns an empty list if the user doesn't exist.

SEE ALSO

VCS::CMSynergy VCS::CMSynergy::Object, VCS::CMSynergy::Client,

AUTHORS

Roderich Schupp, argumentum GmbH <schupp@argumentum.de>

COPYRIGHT AND LICENSE

The VCS::CMSynergy::Users module is Copyright (c) 2001-2005 argumentum GmbH, http://www.argumentum.de. All rights reserved.

You may distribute it under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.