* @param string $app The app currently being authenticated.
* @param string $type Either 'preauthenticate' or
* 'postauthenticate'.
+ * @param string $method The triggering method (preauthenticate only).
+ * Either 'authenticate', 'transparent', or
+ * 'admin'
*
* @return array Two element array, $userId and $credentials.
* @throws Horde_Auth_Exception
*/
- static public function runHook($userId, $credentials, $app, $type)
+ static public function runHook($userId, $credentials, $app, $type,
+ $method = null)
{
$ret_array = array($userId, $credentials);
+ if ($type == 'preauthenticate') {
+ $credentials['authMethod'] = $method;
+ }
+
try {
$result = Horde::callHook($type, array($userId, $credentials), $app);
} catch (Horde_Exception $e) {
return $ret_array;
}
+ unset($credentials['authMethod']);
+
if ($result === false) {
if (self::getAuthError() != self::REASON_MESSAGE) {
self::setAuthError(self::REASON_FAILED);
$userId = trim($userId);
try {
- list($userId, $credentials) = Horde_Auth::runHook($userId, $credentials, $this->_app, 'preauthenticate');
+ list($userId, $credentials) = Horde_Auth::runHook($userId, $credentials, $this->_app, 'preauthenticate', 'authenticate');
} catch (Horde_Auth_Exception $e) {
return false;
}
? Horde_Auth::getCredential()
: $this->_credentials['credentials'];
- list($this->_credentials['userId'], $this->_credentials['credentials']) = Horde_Auth::runHook($userId, $credentials, $this->_app, 'preauthenticate');
+ list($this->_credentials['userId'], $this->_credentials['credentials']) = Horde_Auth::runHook($userId, $credentials, $this->_app, 'preauthenticate', 'transparent');
$this->_credentials['params']['app'] = $this->_app;
if ($this->_transparent()) {
/* Connect to the LDAP server. */
$this->_connect();
- list($userId, $credentials) = Horde_Auth::runHook($userId, $credentials, $this->_app, 'preauthenticate');
+ list($userId, $credentials) = Horde_Auth::runHook($userId, $credentials, $this->_app, 'preauthenticate', 'admin');
if (isset($credentials['ldap'])) {
$entry = $credentials['ldap'];
$dn = $entry['dn'];
/* Connect to the LDAP server. */
$this->_connect();
- list($userId, $credentials) = Horde_Auth::runHook($userId, array(), $this->_app, 'preauthenticate');
+ list($userId, $credentials) = Horde_Auth::runHook($userId, array(), $this->_app, 'preauthenticate', 'admin');
if (isset($credentials['ldap'])) {
$dn = $credentials['ldap']['dn'];
} else {
/* Connect to the LDAP server. */
$this->_connect();
- list($oldID, $old_credentials) = Horde_Auth::runHook($oldID, $credentials, $this->_app, 'preauthenticate');
+ list($oldID, $old_credentials) = Horde_Auth::runHook($oldID, $credentials, $this->_app, 'preauthenticate', 'admin');
if (isset($old_credentials['ldap'])) {
$olddn = $old_credentials['ldap']['dn'];
- list($newID, $new_credentials) = Horde_Auth::runHook($newID, $credentials, $this->_app, 'preauthenticate');
+ list($newID, $new_credentials) = Horde_Auth::runHook($newID, $credentials, $this->_app, 'preauthenticate', 'admin');
$newdn = $new_credentials['ldap']['dn'];
unset($new_credentials['ldap']['dn']);
} else {
/* Connect to the MSAD server. */
$this->_connect();
- list($accountName, $credentials) = Horde_Auth::runHook($accountName, $credentials, $this->_app, 'preauthenticate');
+ list($accountName, $credentials) = Horde_Auth::runHook($accountName, $credentials, $this->_app, 'preauthenticate', 'admin');
if (isset($credentials['ldap'])) {
$dn = $credentials['ldap']['dn'];
} else {
/* Connect to the MSAD server. */
$this->_connect();
- list($accountName, $credentials) = Horde_Auth::runHook($accountName, $credentials, $this->_app, 'preauthenticate');
+ list($accountName, $credentials) = Horde_Auth::runHook($accountName, $credentials, $this->_app, 'preauthenticate', 'admin');
if (isset($credentials['ldap'])) {
$dn = $credentials['ldap']['dn'];
} else {
/* Connect to the MSAD server. */
$this->_connect();
- list($oldId, $credentials) = Horde_Auth::runHook($oldId, $credentials, $this->_app, 'preauthenticate');
+ list($oldId, $credentials) = Horde_Auth::runHook($oldId, $credentials, $this->_app, 'preauthenticate', 'admin');
if (isset($credentials['ldap'])) {
$olddn = $credentials['ldap']['dn'];
} else {