HTTPDUserAdminContrib
A User and Password module supporting text or DBM format htpasswd files, and SQL using HTTPD::UserAdmin CPAN module
Usage
This Contrib adds
auth DBM and
auth SQL support to foswiki, though the
HTTPD::UserAdmin CPAN module.
You receive maximal performance benefit by using the
SQL mode, and ensuring
{Register}{AllowLoginName} is off (so that the
WikiUsers topic is not needed to convert login names to Wiki Names.
See the Extensions |
HTTPDUserAdminContrib section of
configure to set up the specific options.
Text file user store (.htpassword)
If you are using the Text mode a once off converstion from an existing Foswiki htpasswd file must be done, due to differences in the way that email addresses are stored.
run
perl -pi~ -e "s/$([^:]*):([^:]*):(.*)^/$1:$2:emails=$3/g" foswiki/data/.htpasswd to convert from Foswiki's native htpassword format.
From there you can use that file in the
Text DBType, use
dbmmanage to import it to a DBM file, or run a similar tool to import it into your database.
DBM mode
SQL mode (DBI)
This Contrib will not create the database setup for you, you will need to have an existing database, with appropriate database connection permissions, and a database table for with the required fields that is accessible by this user.
Note that the DB Schema name is set in the top section of the settings (defaults to the .htpasswd filename).
Beware: Do not use table names, or column names that are SQL keywords (such as group)
for a minimal, non-optimised mysql setup, run
mysql -p and enter:
- where
www-data is the user that the foswiki scripts run as.
GRANT ALL PRIVILEGES ON 'HTTPDUsers'.* TO 'www-data'@'localhost' IDENTIFIED BY 'foswiki' WITH GRANT OPTION;
create database HTTPDUsers;
CREATE TABLE `HTTPDUsers`.`usertable` (
`name` TINYTEXT NOT NULL,
`wikiname` TINYTEXT NOT NULL,
`emails` TINYTEXT NOT NULL,
`password` TINYTEXT NOT NULL
);
CREATE TABLE `HTTPDUsers`.`grouptable` (
`name` TINYTEXT NOT NULL,
`username` TINYTEXT NOT NULL
);
extra not yet documented functionality
This Contrib can also use group definitions in the same database. There is however no in-wiki user interface to create and maintain these groups for now.
you can for example use
mysql to
INSERT INTO grouptable (name, username) VALUES ('SuperGroup', 'testuser8') ;
Installation Instructions
- Install HTTPDUserAdminContrib
- select Foswiki::Users::HTTPDUserAdminContrib in the Security|Passwords|{PasswordManager} selector in Configure
- then set the appropriate settings in the Exensions|HTTPDUserAdminContrib section of Configure.
You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.
Open configure, and open the "Extensions" section. Use "Find More Extensions" to get a list of available extensions. Select "Install".
If you have any problems, or if the extension isn't available in
configure, then you can still install manually from the command-line. See
http://foswiki.org/Support/ManuallyInstallingExtensions for more help.
Contrib Info
Related Topics: Contribs,
DeveloperDocumentationCategory,
AdminDocumentationCategory,
DefaultPreferences,
SitePreferences