Merge branch 'preempt-hooks' into 'dev'

Preempt hooks

See merge request hubzilla/core!1279
This commit is contained in:
Mario 2018-09-20 12:08:45 +02:00
commit 1b27327057
3 changed files with 22 additions and 0 deletions

0
doc/hook/permit_hook.bb Normal file
View File

View File

@ -469,6 +469,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/permissions_update]permissions_update[/zrl]
Called when a permissions refresh is transmitted
[zrl=[baseurl]/help/hook/permit_hook]permit_hook[/zrl]
Called before a registered hook is actually executed to determine if it should be allowed or blocked
[zrl=[baseurl]/help/hook/personal_xrd]personal_xrd[/zrl]
Called when generating the personal XRD for "old webfinger" (Diaspora)

View File

@ -458,6 +458,25 @@ function call_hooks($name, &$data = null) {
if (isset(App::$hooks[$name])) {
foreach(App::$hooks[$name] as $hook) {
if ($name != 'permit_hook') { // avoid looping
$checkhook = [
'name'=>$name,
'hook'=>$hook,
'data'=>$data,
// Note: Since PHP uses COPY-ON-WRITE
// for variables, there is no cost to
// passing the $data structure (unless
// the permit_hook processors change the
// information it contains.
'permit'=>true
];
call_hooks('permit_hook',$checkhook);
if (!$checkhook['permit']) {
continue;
}
$data = $checkhook['data'];
}
$origfn = $hook[1];
if($hook[0])
@include_once($hook[0]);