=head1 NAME

HTTP::Server::Directory::UserDirs - describe user directories

=head1 INHERITANCE

 HTTP::Server::Directory::UserDirs
   is a HTTP::Server::Directory

=head1 SYNOPSIS

 # implicit creation of ::Directory object
 my $vh = HTTP::Server::VirtualHost
   ->new(user_dirs => {location => ...})

 # explicit use
 my $ud = HTTP::Server::Directory::UserDirs
   ->new(location => sub {...});
 my $vh = HTTP::Server::VirtualHost->new(user_dirs => $ud);

=head1 DESCRIPTION

Each L<HTTP::Server::VirtualHost|HTTP::Server::VirtualHost> may define user directories.

=head1 METHODS

=head2 Constructors

HTTP::Server::Directory::UserDirs-E<gt>B<new>(OPTIONS|HASH-of-OPTIONS)

=over 4

The user-dir rewrite routine has by default Apache-like behavior.

 Option      --Defined in     --Default
 allow         HTTP::Server::Directory  <undef>
 allow_users                    undef
 deny          HTTP::Server::Directory  <undef>
 deny_users                     []
 location      HTTP::Server::Directory  CODE
 path          HTTP::Server::Directory  <ignored>
 user_subdirs                   'public_html'

. allow => CIDR|HOSTNAME|DOMAIN|CODE|ARRAY

. allow_users => ARRAY

=over 4

Lists the user homes which are available.  Cannot be used together with
C<deny_users>.  By default, all user homes are permitted, even those
of system usernames like C<ftp> and C<cups>.
Only used with the default user-dir rewrite rule.

=back

. deny => CIDR|HOSTNAME|DOMAIN|CODE|ARRAY

. deny_users => ARRAY

=over 4

Only used with the default user-dir rewrite rule.

=back

. location => DIRECTORY|CODE

. path => STRING

. user_subdirs => PATH

=over 4

Only used with the default user-dir rewrite rule.

=back

=back

=head2 Attributes

$obj-E<gt>B<location>

=over 4

See L<HTTP::Server::Directory/"Attributes">

=back

$obj-E<gt>B<path>

=over 4

See L<HTTP::Server::Directory/"Attributes">

=back

=head2 Permissions

$obj-E<gt>B<allow>(CLIENT, SESSION, REQUEST, URI)

=over 4

See L<HTTP::Server::Directory/"Permissions">

=back

$obj-E<gt>B<filename>(PATH)

=over 4

See L<HTTP::Server::Directory/"Permissions">

=back

=head1 DETAILS

=head1 SEE ALSO

This module is part of HTTP-Server-Multiplex distribution version 0.10,
built on September 10, 2008. Website: F<http://perl.overmeer.net/httpd-multiplex/>

=head1 LICENSE

Copyrights 2008 by Mark Overmeer. 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 F<http://www.perl.com/perl/misc/Artistic.html>

