# phpman > perldoc > User::Identity::System

## NAME
    [User::Identity::System](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ASystem/markdown) - physical system of a person

## INHERITANCE
     [User::Identity::System](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ASystem/markdown)
       is a [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

## SYNOPSIS
     use [User::Identity](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity/markdown);
     use [User::Identity::System](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ASystem/markdown);
     my $me   = [User::Identity](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity/markdown)->new(...);
     my $server = [User::Identity::System](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ASystem/markdown)->new(...);
     $me->add(system => $server);

     # Simpler

     use [User::Identity](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity/markdown);
     my $me   = [User::Identity](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity/markdown)->new(...);
     my $addr = $me->add(system => ...);

## DESCRIPTION
    The "[User::Identity::System](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ASystem/markdown)" object contains the description of the user's presence on a system.
    The systems are collected by an [User::Identity::Collection::Systems](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ACollection%3A%3ASystems/markdown) object.

    Nearly all methods can return undef.

    Extends "DESCRIPTION" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

## METHODS
    Extends "METHODS" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

### Constructors
    Extends "Constructors" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

    [User::Identity::System](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ASystem/markdown)->new( [$name], %options )
        Create a new system. You can specify a name as first argument, or in the OPTION list.
        Without a specific name, the organization is used as name.

         -Option     --Defined in          --Default
          description  [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)  undef
          hostname                           'localhost'
          location                           undef
          name         [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)  <required>
          os                                 undef
          parent       [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)  undef
          password                           undef
          username                           undef

        description => STRING
        hostname => DOMAIN
          The hostname of the described system. It is preferred to use full system names, not
          abbreviations. For instance, you can better use "www.tux.aq" than "www" to avoid
          confusion.

        location => NICKNAME|OBJECT
          The NICKNAME of a location which is defined for the same user. You can also specify a
          [User::Identity::Location](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ALocation/markdown) OBJECT.

        name => STRING
        os => STRING
          The name of the operating system which is run on the server. It is advised to use the
          names as used by Perl's $^O variable. See the perlvar man-page for this variable, and
          perlport for the possible values.

        parent => OBJECT
        password => STRING
          The password to be used to login. This password must be un-encoded: directly usable. Be
          warned that storing un-encoded passwords is a high security list.

        username => STRING
          The username to be used to login to this host.

### Attributes
    Extends "Attributes" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

    $obj->description()
        Inherited, see "Attributes" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->hostname()
    $obj->location()
        Returns the object which describes to which location this system relates. The location may
        be used to find the name of the organization involved, or to create a signature. If no
        location is specified, undef is returned.

    $obj->name( [$newname] )
        Inherited, see "Attributes" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->os()
    $obj->password()
    $obj->username()

### Collections
    Extends "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

    $obj->add($collection, $role)
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->addCollection( $object | <[$type], %options> )
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->collection($name)
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->parent( [$parent] )
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->removeCollection($object|$name)
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->type()
    [User::Identity::System](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ASystem/markdown)->type()
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

    $obj->user()
        Inherited, see "Collections" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

### Searching
    Extends "Searching" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown).

    $obj->find($collection, $role)
        Inherited, see "Searching" in [User::Identity::Item](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3AItem/markdown)

## DIAGNOSTICS
    Error: $object is not a collection.
        The first argument is an object, but not of a class which extends
        [User::Identity::Collection](https://www.chedong.com/phpMan.php/perldoc/User%3A%3AIdentity%3A%3ACollection/markdown).

    Error: Cannot load collection module for $type ($class).
        Either the specified $type does not exist, or that module named $class returns compilation
        errors. If the type as specified in the warning is not the name of a package, you specified
        a nickname which was not defined. Maybe you forgot the 'require' the package which defines
        the nickname.

    Error: Creation of a collection via $class failed.
        The $class did compile, but it was not possible to create an object of that class using the
        options you specified.

    Error: Don't know what type of collection you want to add.
        If you add a collection, it must either by a collection object or a list of options which
        can be used to create a collection object. In the latter case, the type of collection must
        be specified.

    Warning: No collection $name
        The collection with $name does not exist and can not be created.

## SEE ALSO
    This module is part of User-Identity distribution version 1.01, built on February 11, 2022.
    Website: <http://perl.overmeer.net/CPAN/>

## LICENSE
    Copyrights 2003-2022 by [Mark Overmeer <<markov@cpan.org>>]. For other contributors see ChangeLog.

    This program is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself. See <http://dev.perl.org/licenses/>

