Rev 1 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: *//*** Storage driver for use against Samba password files** PHP versions 4 and 5** LICENSE: This source file is subject to version 3.01 of the PHP license* that is available through the world-wide-web at the following URI:* http://www.php.net/license/3_01.txt. If you did not receive a copy of* the PHP License and are unable to obtain it through the web, please* send a note to license@php.net so we can mail you a copy immediately.** @category Authentication* @package Auth* @author Michael Bretterklieber <michael@bretterklieber.com>* @author Adam Ashley <aashley@php.net>* @copyright 2001-2006 The PHP Group* @license http://www.php.net/license/3_01.txt PHP License 3.01* @version CVS: $Id: SMBPasswd.php,v 1.8 2007/06/12 03:11:26 aashley Exp $* @link http://pear.php.net/package/Auth* @since File available since Release 1.2.3*//*** Include PEAR File_SMBPasswd*/require_once "File/SMBPasswd.php";/*** Include Auth_Container Base file*/require_once "Auth/Container.php";/*** Include PEAR class for error handling*/require_once "PEAR.php";/*** Storage driver for fetching login data from an SAMBA smbpasswd file.** This storage container can handle SAMBA smbpasswd files.** Example:* $a = new Auth("SMBPasswd", '/usr/local/private/smbpasswd');* $a->start();* if ($a->getAuth()) {* printf ("AUTH OK<br>\n");* $a->logout();* }** @category Authentication* @package Auth* @author Michael Bretterklieber <michael@bretterklieber.com>* @author Adam Ashley <aashley@php.net>* @package Auth* @copyright 2001-2006 The PHP Group* @license http://www.php.net/license/3_01.txt PHP License 3.01* @version Release: 1.6.1 File: $Revision: 1.8 $* @link http://pear.php.net/package/Auth* @since Class available since Release 1.2.3*/class Auth_Container_SMBPasswd extends Auth_Container{// {{{ properties/*** File_SMBPasswd object* @var object*/var $pwfile;// }}}// {{{ Auth_Container_SMBPasswd() [constructor]/*** Constructor of the container class** @param $filename string filename for a passwd type file* @return object Returns an error object if something went wrong*/function Auth_Container_SMBPasswd($filename){$this->pwfile = new File_SMBPasswd($filename,0);if (!$this->pwfile->load()) {PEAR::raiseError("Error while reading file contents.", 41, PEAR_ERROR_DIE);return;}}// }}}// {{{ fetchData()/*** Get user information from pwfile** @param string Username* @param string Password* @return boolean*/function fetchData($username, $password){$this->log('Auth_Container_SMBPasswd::fetchData() called.', AUTH_LOG_DEBUG);return $this->pwfile->verifyAccount($username, $password);}// }}}// {{{ listUsers()function listUsers(){$this->log('Auth_Container_SMBPasswd::fetchData() called.', AUTH_LOG_DEBUG);return $this->pwfile->getAccounts();}// }}}// {{{ addUser()/*** Add a new user to the storage container** @param string Username* @param string Password* @param array Additional information** @return boolean*/function addUser($username, $password, $additional = ''){$this->log('Auth_Container_SMBPasswd::addUser() called.', AUTH_LOG_DEBUG);$res = $this->pwfile->addUser($user, $additional['userid'], $pass);if ($res === true) {return $this->pwfile->save();}return $res;}// }}}// {{{ removeUser()/*** Remove user from the storage container** @param string Username*/function removeUser($username){$this->log('Auth_Container_SMBPasswd::removeUser() called.', AUTH_LOG_DEBUG);$res = $this->pwfile->delUser($username);if ($res === true) {return $this->pwfile->save();}return $res;}// }}}// {{{ changePassword()/*** Change password for user in the storage container** @param string Username* @param string The new password*/function changePassword($username, $password){$this->log('Auth_Container_SMBPasswd::changePassword() called.', AUTH_LOG_DEBUG);$res = $this->pwfile->modUser($username, '', $password);if ($res === true) {return $this->pwfile->save();}return $res;}// }}}}?>