Net::LDAP::Class::Group::AD(3)

NAME
Net::LDAP::Class::Group::AD - Active Directory group class

SYNOPSIS
 # create a subclass for your local Active Directory
 package MyLDAPGroup;
 use base qw( Net::LDAP::Class::Group::AD );

 __PACKAGE__->metadata->setup(
    base_dn             => 'dc=mycompany,dc=com',
    attributes          => __PACKAGE__->AD_attributes,
    unique_attributes   => __PACKAGE__->AD_unique_attributes,
 );

 1;

 # then use your class
 my $ldap = get_and_bind_LDAP_object(); # you write this

 use MyLDAPGroup;
 my $group = MyLDAPGroup->new( ldap => $ldap, cn => 'foobar' );
 $group->read_or_create;
 my $users = $group->users_iterator( page_size => 50 );
 while ( my $user = $users->next ) {
     printf("user %s in group %s\n", $user, $group);
 }

DESCRIPTION
Net::LDAP::Class::Group::AD isa Net::LDAP::Class::Group implementing the Active Directory LDAP schema.

CLASS METHODS

  AD_attributes
Returns array ref of a subset of the default Active Directory attributes. Only a subset is used since the default schema contains literally 100s of attributes. The subset was chosen based on its similarity to the POSIX schema.

  AD_unique_attributes
Returns array ref of unique Active Directory attributes.

OBJECT METHODS

  fetch_primary_users
Required MethodMaker method for retrieving primary_users from LDAP.

Returns array or array ref based on context, of related User objects who have this group assigned as their primary group.

  primary_users_iterator([opts])
Returns a Net::LDAP::Class::Iterator object for all the related primary users for the group.

This is the same data as primary_users() returns, but is more efficient since it pages the results and only fetches one at a time.

  fetch_secondary_users
Required MethodMaker method for retrieving secondary_users from LDAP.

Returns array or array ref based on context, of related User objects who have this group assigned as a secondary group (memberOf).

Consider using secondary_users_iterator() instead, especially if you have large groups. See Net::LDAP::Class::Iterator for an explanation. This method is just a wrapper around secondary_users_iterator().

  secondary_users_iterator([opts])
Like primary_users_iterator, only for secondary_users.

This is the same data as secondary_users() returns, but is more efficient since it pages the results and only fetches one at a time.

  gid
Alias for calling primaryGroupToken() method. Note that primaryGroupToken is dynamically generated by the server and cannot be assigned (set).

  action_for_create([ cn => cn_value ])
Add a group to the database.

May be called as a class method with explicit cn key/value pair.

  action_for_update
Save new cn (name) for an existing group.

  action_for_delete( [cn => cn_value] )
Removes array ref of actions for removing the Group.

You may call this as a class method with an explicit cn key/value pair.

  add_user( user_object )
Push user_object onto the list of member() DNs, checking that user_object is not already on the list.

  remove_user( user_object )
Drop user_object from the list of member() DNs, checking that user_object is already on the list.

AUTHOR
Peter Karman, "<karman at cpan.org>"

BUGS
Please report any bugs or feature requests to "bug-net-ldap-class at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-LDAP-Class>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT
You can find documentation for this module with the perldoc command.

    perldoc Net::LDAP::Class

You can also look for information at:

•   AnnoCPAN: Annotated CPAN documentation

    <http://annocpan.org/dist/Net-LDAP-Class>

•   CPAN Ratings

    <http://cpanratings.perl.org/d/Net-LDAP-Class>

•   RT: CPAN's request tracker

    <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-LDAP-Class>

•   Search CPAN

    <http://search.cpan.org/dist/Net-LDAP-Class>

ACKNOWLEDGEMENTS
The Minnesota Supercomputing Institute "http://www.msi.umn.edu/" sponsored the development of this software.

COPYRIGHT
Copyright 2008 by the Regents of the University of Minnesota. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO
Net::LDAP