Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages
HTTPD::GroupAdmin(3) User Contributed Perl Documentation HTTPD::GroupAdmin(3)

HTTPD::GroupAdmin - Management of HTTP server group databases

    use HTTPD::GroupAdmin ();

This software is meant to provide a generic interface that hides the inconsistencies across HTTP server implementations of user and group databases.

new ()
Here's where we find out what's different about your server.
Some examples:
    @DBM = (DBType => 'DBM',
            DB     => '.htgroup',
            Server => 'apache');
    $group = new HTTPD::GroupAdmin @DBM;
This creates an object whose database is a DBM file named '.htgroup', in a format that the Apache server understands.
    @Text = (DBType => 'Text',
             DB     => '.htgroup',
             Server => 'ncsa');
    $group = new HTTPD::GroupAdmin @Text;
This creates an object whose database is a plain text file named '.htgroup', in a format that the NCSA server understands.
Full list of constructor attributes:
Note: Attribute names are case-insensitive
Name - Group name
DBType - The type of database, one of 'DBM', 'Text', or 'SQL' (Default is 'DBM')
DB - The database name (Default is '.htpasswd' for DBM & Text databases)
Server - HTTP server name (Default is the generic class, that works with NCSA, Apache and possibly others)
Note: run 'perl t/support.t matrix' to see what support is currently availible
Path - Relative DB files are resolved to this value (Default is '.')
Locking - Boolean, Lock Text and DBM files (Default is true)
Debug - Boolean, Turn on debug mode
Specific to DBM files:
DBMF - The DBM file implementation to use (Default is 'NDBM')
Flags - The read, write and create flags. There are four modes: rwc - the default, open for reading, writing and creating. rw - open for reading and writing. r - open for reading only. w - open for writing only.
Mode - The file creation mode, defaults to '0644'
Specific to DBI: We talk to an SQL server via Tim Bunce's DBI interface. For more info see:
Host - Server hostname
Port - Server port
User - Database login name
Auth - Database login password
Driver - Driver for DBI (Default is 'mSQL')
GroupTable - Table with field names below
NameField - Field for the name (Default is 'user')
GroupField - Field for the group (Default is 'group')
From here on out, things should look the same for everyone.
Add user $username to group $groupname, or whatever the 'Name' attribute is set to.
Fails if $username exists in the database
    if($group->add('dougm', 'www-group')) {
        print "Welcome!\n";
Delete user $username from group $groupname, or whatever the 'Name' attribute is set to.
    if($group->delete('dougm')) {
        print "He's gone from the group\n";
exists($groupname, [$username])
True if $groupname is found in the database
    if($group->exists('web-heads')) {
        die "oh no!";
    if($group->exists($groupname, $username) {
        #$username is a member of $groupname
Returns a list of group names, or users in a group if '$name' is present.
@groups = $group->list;
@users = $group->list('web-heads');
Short cut for creating an HTTPD::UserAdmin object. All applicable attributes are inherited, but can be overridden.
    $user = $group->user();
(See HTTPD::UserAdmin)
Convert a database.
    #not yet
Remove group $groupname from the database
Change the value of 'Name' attribute.
Turn debugging on or off
lock([$timeout]) =item unlock()
These methods give you control of the locking mechanism.
    $group = new HTTPD::GroupAdmin (Locking => 0); #turn off auto-locking
    $group->lock; #lock the object's database
    $group->add($username,$passwd); #write while database is locked
    $group->unlock; release the lock
Select a different database.
    $olddb = $group->db($newdb);
    print "Now we're reading and writing '$newdb', done with '$olddb'n\";
Get or set read, write, create flags.
Commit changes to disk (for Text files).


Doug MacEachern <>
Copyright (c) 1996, 1997 Doug MacEachern
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
2003-01-16 perl v5.28.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.