diff options
Diffstat (limited to 'engine/lib/pam.php')
| -rw-r--r-- | engine/lib/pam.php | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/engine/lib/pam.php b/engine/lib/pam.php index 4f9f44278..1c9c3bfe1 100644 --- a/engine/lib/pam.php +++ b/engine/lib/pam.php @@ -30,7 +30,9 @@ $_PAM_HANDLERS = array();   * failure, return false or throw an exception. Returning nothing indicates that   * the handler wants to be skipped.   * - * @param string $handler    The handler function in the format + * Note, $handler must be string callback (not an array/Closure). + * + * @param string $handler    Callable global handler function in the format ()   * 		                     pam_handler($credentials = NULL);   * @param string $importance The importance - "sufficient" (default) or "required"   * @param string $policy     The policy type, default is "user" @@ -45,7 +47,8 @@ function register_pam_handler($handler, $importance = "sufficient", $policy = "u  		$_PAM_HANDLERS[$policy] = array();  	} -	if (is_callable($handler)) { +	// @todo remove requirement that $handle be a global function +	if (is_string($handler) && is_callable($handler, true)) {  		$_PAM_HANDLERS[$policy][$handler] = new stdClass;  		$_PAM_HANDLERS[$policy][$handler]->handler = $handler; | 
