HTTPD::GroupAdmin - Management of HTTP server group databases


HTTPD-User-Manage documentation  | view source Contained in the HTTPD-User-Manage distribution.

Index


NAME

Top

HTTPD::GroupAdmin - Management of HTTP server group databases

SYNOPSIS

Top

    use HTTPD::GroupAdmin ();

DESCRIPTION

Top

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

METHODS

Top

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: http://www.hermetica.com/technologia/DBI/

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($username[,$groupname])

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($username[,$groupname])

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
    }

list([$groupname])

Returns a list of group names, or users in a group if '$name' is present.

@groups = $group->list;

@users = $group->list('web-heads');

user()

Short cut for creating an HTTPD::UserAdmin object. All applicable attributes are inherited, but can be overridden.

    $user = $group->user();

(See HTTPD::UserAdmin)

convert(@Attributes)

Convert a database.

    #not yet

remove($groupname)

Remove group $groupname from the database

name($groupname)

Change the value of 'Name' attribute.

    $group->name('bew-ediw-dlrow');

debug($boolean)

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

db($dbname);

Select a different database.

    $olddb = $group->db($newdb);
    print "Now we're reading and writing '$newdb', done with '$olddb'n\";

flags([$flags])

Get or set read, write, create flags.

commit

Commit changes to disk (for Text files).

SEE ALSO

Top

HTTPD::UserAdmin(3)

AUTHOR

Top

Doug MacEachern <dougm@osf.org>

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.


HTTPD-User-Manage documentation  | view source Contained in the HTTPD-User-Manage distribution.