Table of Contents
Initialize class
We need to initialize the class. Set a filename of the .htpasswd with full or relative path:
require_once('../src/htpasswd.class.php');
$oHtgroup=new htpasswd('/var/www/users/.htgroup');
CRUD actions
Add group
if(!$oHtgroup->add('admins')){
die("Failed");
}
if(!$oHtgroup->add('editors')){
die("Failed");
}
echo "OK";
List all groups
print_r($oHtgroup->list());
… returns something like this:
Array
(
[0] => admins
[1] => editors
...
)
The method list()
has a parameter for a flag to show groupmembers. If the flag is true, you get an array with
print_r($oHtgroup->list(true));
… returns something like this:
Array
(
[admins] => Array
(
[1] => anton
[2] => berta
)
...
)
Rename a group
if (!$oHtgroup->rename('editors', 'moderators')){
die("Failed");
}
echo "OK";
Delete group
if (!$oHtgroup->remove('moderators')){
die("Failed");
}
echo "OK, group was deleted";
User methods
Add user to group
$oHtgroup->userAdd('anton', 'admins');
$oHtgroup->userAdd('berta', 'admins');
Remove user from group
$oHtgroup->userRemove('anton', 'admins');
More methods
Check if group exists
if ($oHtgroup->exists('admins')){
echo "Group exists";
}
List members
Next to list()
there is also a members()
method to list members of a given group.
print_r($oHtgroup->members('admins'));
returns
Array
(
[1] => anton
[2] => berta
)
Last error
Actons return success as bool. If it fails you can get the last error message. This is useful for debugging. Do not show the error message to the user.
echo $oHtpasswd->error();
Debugging
With a bool value you can enable or disable debug mode.
$oHtgroup->debug(true);
$oHtgroup->add('admins')
After enabling debugging you see debug info and why a method would return false.
DEBUG: axelhahn\htgroup::add(group 'admins')
DEBUG: axelhahn\htgroup::_groupExists(group 'admins')
DEBUG: axelhahn\htgroup::add: Adding group ...
DEBUG: axelhahn\htgroup::_saveFile()
DEBUG: axelhahn\htgroup::generateContent()
DEBUG: axelhahn\htgroup::generateContent: adding 1 group(s) ...
Set a new file name
You can set a new full path of the .htpasswd file. It is not required that it exists but the directory must be writable. With using the 1st writing action the file will be created.
$oHtgroup->setFile('/var/www/website_2/.htgroup');