diff options
author | Andrew Dolgov <[email protected]> | 2019-08-15 20:23:45 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2019-08-15 20:23:45 +0300 |
commit | 10c63ed58240c3e652b931be9a880026c465bb50 (patch) | |
tree | 1004ccd27896ecd4602b16dc1deeaec2e1a4705d /classes | |
parent | e46ed1ff975aec5b6f2bc7b17abe9d3b5d243028 (diff) |
pluginhost: add helper methods to get private/public pluginmethod endpoint URLs
Diffstat (limited to 'classes')
-rwxr-xr-x | classes/pluginhost.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/classes/pluginhost.php b/classes/pluginhost.php index 4d5b3252c..4cc85f044 100755 --- a/classes/pluginhost.php +++ b/classes/pluginhost.php @@ -491,4 +491,34 @@ class PluginHost { function get_owner_uid() { return $this->owner_uid; } + + // handled by classes/pluginhandler.php, requires valid session + function get_method_url($sender, $method, $params) { + return get_self_url_prefix() . "/backend.php?" . + http_build_query( + array_merge( + [ + "op" => "pluginhandler", + "plugin" => strtolower(get_class($sender)), + "pmethod" => $method + ], + $params)); + } + + // WARNING: endpoint in public.php, exposed to unauthenticated users + function get_public_method_url($sender, $method, $params) { + if ($sender->is_public_method($method)) { + return get_self_url_prefix() . "/public.php?" . + http_build_query( + array_merge( + [ + "op" => "pluginhandler", + "plugin" => strtolower(get_class($sender)), + "pmethod" => $method + ], + $params)); + } else { + user_error("get_public_method_url: requested method '$method' of '" . get_class($sender) . "' is private."); + } + } } |