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.