aboutsummaryrefslogtreecommitdiff
path: root/engine/classes
diff options
context:
space:
mode:
authorSteve Clay <steve@mrclay.org>2012-09-17 17:41:15 -0400
committerSteve Clay <steve@mrclay.org>2012-11-14 21:09:42 -0500
commit3048db0f3f1ade31d6f3a2cdd3268e978a3e3cf3 (patch)
tree1c21fd8f55bebeeedf4790aaa0e5e2f76e3a93eb /engine/classes
parent7c6e3578ca8ab3e703852629e82b478265833d29 (diff)
downloadelgg-3048db0f3f1ade31d6f3a2cdd3268e978a3e3cf3.tar.gz
elgg-3048db0f3f1ade31d6f3a2cdd3268e978a3e3cf3.tar.bz2
Fixes #4861: allow lazy-loading for static method callbacks, allow more callables
Diffstat (limited to 'engine/classes')
-rw-r--r--engine/classes/ElggPAM.php8
1 files changed, 7 insertions, 1 deletions
diff --git a/engine/classes/ElggPAM.php b/engine/classes/ElggPAM.php
index 0681a909b..f07095fc1 100644
--- a/engine/classes/ElggPAM.php
+++ b/engine/classes/ElggPAM.php
@@ -53,11 +53,17 @@ class ElggPAM {
foreach ($_PAM_HANDLERS[$this->policy] as $k => $v) {
$handler = $v->handler;
+ if (!is_callable($handler)) {
+ continue;
+ }
+ /* @var callable $handler */
+
$importance = $v->importance;
try {
// Execute the handler
- $result = $handler($credentials);
+ // @todo don't assume $handler is a global function
+ $result = call_user_func($handler, $credentials);
if ($result) {
$authenticated = true;
} elseif ($result === false) {