NAME

Apache::UploadSvr::User - Identify users and permissions Apache::UploadSvr

SYNOPSIS

Apache::UploadSvr::User->new($mgr);

DESCRIPTION

This class implements a mapping between user-ID and user attributes. The backend is provided by a mSQL-1 database with the following structure:

CREATE TABLE usertable (
  user CHAR(12) NOT NULL PRIMARY KEY,
  email CHAR(64),
  firstname CHAR(32),
  lastname CHAR(32),
  fullname CHAR(64),
  salut CHAR(4),
  lastlogin CHAR(10),
  introduced CHAR(10),
  password CHAR(13),
  changedon CHAR(10),
  changedby CHAR(10)
)

user corresponds to the username with which the users identify in the authentication stage. email is their email address where the transaction tickets are delivered to. lastname is their family name. <fullname> is whatever the fullname is composed of in the local culture. salut is the salutation like Herr or Mister. lastlogin is the timestamp that is updated with every request. introduced is the timestamp when the user got registered (not used in this uploadserver). password is the crypted password in the default upload server. If the authentication handler uses a different table, then this field is not needed. changedon and changedby are not used in this application, they are only used as interesting facts for the administrator.

CREATE TABLE perms (
  user CHAR(12),
  permitted CHAR(32)
)

This table has a 1 to N mapping of users to directories they have write access to.

The constructor ->new takes as a single argument an Apache::UploadSvr object and returns an object that has the above described fields as object attributes. The attribute permitted is computed from the perms table so that its value is an anonymous list of the directories the user has write permission to. A typical structure of such an object would be:

bless( {
  'introduced' => 875601758,
  'password' => 'rtthXtbR5tjit',
  'fullname' => 'Andreas J. König',
  'changedby' => 'andreas',
  'lastname' => 'König',
  'changedon' => 875601758,
  'email' => 'k',
  'firstname' => 'Andreas',
  'salut' => 'Herr',
  'lastlogin' => '0903739665',
  'permitted' => [
                   '/'
                 ],
  'user' => 'andreas'
}, 'Apache::UploadSvr::User' )

The method ->has_perms($obj) returns true if the current user has write access to a file or dircetory. What counts here are database entries, not file system permissions.

CONFIGURATION

SECURITY

BUGS

AUTHOR

Andreas Koenig <koenig@kulturbox.de>

COPYRIGHT, LICENSE

These programs or modules are Copyright (C) 1997-1998 Kulturbox, Berlin, Germany.

They are free software; you can redistribute them, use and/or modify them under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 128:

Non-ASCII character seen before =encoding in 'König','. Assuming CP1252