* @return int|bool user id or false
*/
function local_user() {
- if((x($_SESSION,'authenticated')) && (x($_SESSION,'uid')))
+ if (x($_SESSION, 'authenticated') && x($_SESSION, 'uid')) {
return intval($_SESSION['uid']);
+ }
return false;
}
+/**
+ * @brief Returns the public contact id of logged in user or false.
+ *
+ * @return int|bool public contact id or false
+ */
+function public_contact() {
+ static $public_contact_id = false;
+
+ if (!$public_contact_id && x($_SESSION, 'authenticated')) {
+ if (x($_SESSION, 'my_address')) {
+ // Local user
+ $public_contact_id = intval(get_contact($_SESSION['my_address'], 0));
+ } else if (x($_SESSION, 'visitor_home')) {
+ // Remote user
+ $public_contact_id = intval(get_contact($_SESSION['visitor_home'], 0));
+ }
+ } else if (!x($_SESSION, 'authenticated')) {
+ $public_contact_id = false;
+ }
+
+ return $public_contact_id;
+}
+
/**
* @brief Returns contact id of authenticated site visitor or false
*