New hook "support_probe"

This commit is contained in:
Michael 2023-04-27 05:24:47 +00:00
parent a725815d7a
commit 970d86472e
4 changed files with 33 additions and 1 deletions

View File

@ -638,6 +638,14 @@ Hook data:
- **uid** (input): the user id to revoke the block for.
- **result** (output): a boolean value indicating wether the operation was successful or not.
### support_probe
Called to assert whether a connector addon provides probing capabilities.
Hook data:
- **protocol** (input): shorthand for the protocol. List of values is available in `src/Core/Protocol.php`.
- **result** (output): should be true if the connector provides follow capabilities, left alone otherwise.
### storage_instance
Called when a custom storage is used (e.g. webdav_storage)
@ -907,6 +915,7 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
Hook::callAll('revoke_follow', $hook_data);
Hook::callAll('block', $hook_data);
Hook::callAll('unblock', $hook_data);
Hook::callAll('support_probe', $hook_data);
### src/Core/Logger/Factory.php

View File

@ -397,6 +397,7 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
Hook::callAll('revoke_follow', $hook_data);
Hook::callAll('block', $hook_data);
Hook::callAll('unblock', $hook_data);
Hook::callAll('support_probe', $hook_data);
### src/Core/Logger/Factory.php

View File

@ -305,4 +305,26 @@ class Protocol
return $hook_data['result'];
}
/**
* Returns whether the provided protocol supports probing for contacts
*
* @param $protocol
* @return bool
* @throws HTTPException\InternalServerErrorException
*/
public static function supportsProbe($protocol): bool
{
if (in_array($protocol, self::NATIVE_SUPPORT)) {
return true;
}
$hook_data = [
'protocol' => $protocol,
'result' => null
];
Hook::callAll('support_probe', $hook_data);
return $hook_data['result'] === true;
}
}

View File

@ -463,7 +463,7 @@ class Profile extends BaseModule
];
}
if (in_array($contact['network'], Protocol::NATIVE_SUPPORT)) {
if (Protocol::supportsProbe($contact['network'])) {
$contact_actions['updateprofile'] = [
'label' => $this->t('Refetch contact data'),
'url' => 'contact/' . $contact['id'] . '/updateprofile?t=' . $formSecurityToken,