// we've not yet figured out how to bootstrap joomla, so we should
// not execute hooks if joomla is not loaded
if (defined('_JEXEC')) {
- $permission = JFactory::getUser()->authorise($translated[0], $translated[1]);
- return $permission;
+ $user = JFactory::getUser();
+
+ // If we are coming from REST we don't have a user but we do have the api_key for a user.
+ if ($user->id === 0) {
+ // This is a codeblock copied from /Civicrm/Utils/REST
+ $uid = NULL;
+ if (!$uid) {
+ $store = NULL;
+ $api_key = CRM_Utils_Request::retrieve('api_key', 'String', $store, FALSE, NULL, 'REQUEST');
+
+ if (empty($api_key)) {
+ return CRM_Utils_Rest::error("FATAL: mandatory param 'api_key' (user key) missing");
+ }
+
+ $contact_id = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $api_key, 'id', 'api_key');
+
+ if ($contact_id) {
+ $uid = CRM_Core_BAO_UFMatch::getUFId($contact_id);
+ }
+ $user = JFactory::getUser($uid);
+
+ }
+ }
+
+ return $user->authorise($translated[0], $translated[1]);;
+
}
else {
- // This function is supposed to return a boolean. What does '(1)' mean?
- return '(1)';
+
+ return false;
}
}