NAME

Net::Intermapper::User - Interface with the HelpSystems Intermapper HTTP API - Users

SYNOPSIS

use Net::Intermapper;
my $intermapper = Net::Intermapper->new(hostname=>"10.0.0.1", username=>"admin", password=>"nmsadmin");
# Options:
# hostname - IP or hostname of Intermapper 5.x server
# username - Username of Administrator user
# password - Password of user
# ssl - SSL enabled (1 - default) or disabled (0)
# port - TCP port for querying information. Defaults to 8181
# modifyport - TCP port for modifying information. Default to 443
# cache - Boolean to enable smart caching or force network queries

my %users = $intermapper->users;
my $users_ref = $intermapper->users;
# Retrieve all users from Intermapper, Net::Intermapper::User instances
# Returns hash or hashref, depending on context

my %devices = $intermapper->devices;
my $devices_ref = $intermapper->devices;
# Retrieve all devices from Intermapper, Net::Intermapper::Device instances
# Returns hash or hashref, depending on context

my %maps = $intermapper->maps;
my $maps_ref = $intermapper->maps;
# Retrieve all maps from Intermapper, Net::Intermapper::Map instances
# Returns hash or hashref, depending on context

my %interfaces = $intermapper->interfaces;
my $interfaces_ref = $intermapper->interfaces;
# Retrieve all interfaces from Intermapper, Net::Intermapper::Interface instances
# Returns hash or hashref, depending on context

my %vertices = $intermapper->vertices;
my $vertices_ref = $intermapper->vertices;
# Retrieve all vertices from Intermapper, Net::Intermapper::Vertice instances
# Returns hash or hashref, depending on context

my $user = $intermapper->users->{"admin"};
print $user->header; 
print $device->header;
print $map->header;
print $interface->header;
print $vertice->header;
# Generate 'directive' needed for manipulation. Mostly used internally.
# $user->mode("create"); # This changes the header fields
# $user->mode("update"); # This also changes the header fields
# Both are NOT needed when adding or updating a record
print $user->toTAB;
print $device->toXML;
print $map->toCSV;
# Works on ALL classes
# Produce human-readable output of each record. 

my $user = Net::Intermapper::User->new(Name=>"testuser", Password=>"Test12345");
my $response = $intermapper->create($user);
# Create new user
# Return value is HTTP::Response object

my $device = Net::Intermapper::Device->new(Name=>"testDevice", MapName=>"TestMap", MapPath=>"/TestMap", Address=>"10.0.0.1");
my $response = $intermapper->create($device);
# Create new device
# Return value is HTTP::Response object

$user->Password("Foobar123");
my $response = $intermapper->update($user);
# Update existing user
# Return value is HTTP::Response object

my $user = $intermapper->users->{"bob"};
my $response = $intermapper->delete($user);
# Delete existing user
# Return value is HTTP::Response object

my $device = $intermapper->devices->{"UniqueDeviceID"};
my $response = $intermapper->delete($device);
# Delete existing device
# Return value is HTTP::Response object

my $users = { "Tom" => $tom_user, "Bob" => $bob_user };
$intermapper->users($users);
# At this point, there is no real reason to do this as update, create and delete work with explicit arguments.
# But it can be done with users, devices, interfaces, maps and vertices
# Pass a hashref to each method. This will NOT affect the smart-caching (only explicit calls to create, update and delete do this - for now).
 

DESCRIPTION

Net::Intermapper::User is a perl wrapper around the HelpSystems Intermapper API provided through HTTP/HTTPS for access to user information.

All calls are handled through an instance of the Net::Intermapper class.

use Net::Intermapper;
my $intermapper = Net::Intermapper->new(hostname => '10.0.0.1', username => 'admin', password => 'nmsadmin');

USAGE

new

Class constructor. Returns object of Net::Intermapper::User on succes. Attributes are:

Id (read-only)

A unique, persistent identifier for this user.

Name (read-write)

Login name of the user. This value is used for lookups in the users method in Net::Intermapper.

Password (read-write)

If the user is to be validated locally, the user's password.

Guest (read-write)

The user's autologin properties.

External (read-write)

Indicates user is to be validated by an auth server.

Groups (read-write)

Comma-separated list of groups to which to add user. Values are ordered alphabetically. Intermapper does not support removing an existing group but does support deleting a user.

my $user = $intermapper->users->{"bob"};
my $groups = $user->Groups;
my @groups = split(/\,/,$groups);
shift @groups; # Remove first, just as an example
$groups = join(",",@groups);
$intermapper->delete($user);
$user->groups($groups);
$intermapper->create($user);

Returns the directive aka data header required by the Intermapper API to perform CRUD actions. This is handled through the create, update and delete method and should not really be used.

toTAB

Returns the object data formatted in TAB delimited format. Used in combination with the header and the format method in Net::Intermapper to perform CRUD actions. This is handled through the create, update and delete method and should not really be used.

toCSV

Returns the object data formatted in Comma Separated delimited format. Used in combination with the header and the format method in Net::Intermapper to perform CRUD actions. This is handled through the create, update and delete method and should not really be used.

toXML

Returns the object data formatted in XML format. Used in combination with the header and the format method in Net::Intermapper to perform CRUD actions. This is handled through the create, update and delete method and should not really be used.

mode

Internal method to properly format the data and header for CRUD actions. Typically not used.

$ERROR

NEEDS TO BE ADDED

This variable will contain detailed error information.

REQUIREMENTS

For this library to work, you need an instance with Intermapper (obviously) or a simulator like Net::Intermapper::Mock.

Moose
IO::Socket::SSL
LWP::UserAgent
XML::Simple
MIME::Base64
URI::Escape

BUGS

None so far

SUPPORT

None so far :)

AUTHOR

Hendrik Van Belleghem
CPAN ID: BEATNIK
hendrik.vanbelleghem@gmail.com

COPYRIGHT

This program is free software licensed under the...

The General Public License (GPL)
Version 2, June 1991

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

http://download.intermapper.com/docs/UserGuide/Content/09-Reference/09-05-Advanced_Importing/the_directive_line.htm http://download.intermapper.com/schema/imserverschema.html