public $notice_id; // int(4) primary_key not_null
public $created; // datetime() not_null
- /* Static get */
- function staticGet($k,$v=null)
- { return Memcached_DataObject::staticGet('Notice_tag',$k,$v); }
-
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
'indexes' => array(
'notice_tag_created_idx' => array('created'),
'notice_tag_notice_id_idx' => array('notice_id'),
+ 'notice_tag_tag_created_notice_id_idx' => array('tag', 'created', 'notice_id')
),
);
}
}
}
- function pkeyGet($kv)
- {
- return Memcached_DataObject::pkeyGet('Notice_tag', $kv);
- }
-
static function url($tag)
{
if (common_config('singleuser', 'enabled')) {
return $url;
}
+
+ /**
+ * Checks whether the current profile is allowed (in scope) to see this tag.
+ *
+ * @return $inScope Whether the current profile is allowed to see this tag
+ */
+ function isCurrentProfileInScope () {
+ // Check scope, default is allowed
+ $inScope = TRUE;
+
+ // 1) Get notice object and set id
+ $notice = new Notice();
+ $notice->id = $this->notice_id;
+
+ //* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] this->tag=' . $this->tag . ',this->notice_id=' . $this->notice_id . ' - Calling find() ... fetch() ...');
+
+ // Fetch notice
+ if ((!$notice->find()) || (!$notice->fetch())) {
+ // No longer valid, so better don't allow to see it
+ return FALSE;
+ }
+
+ //* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] this->tag=' . $this->tag . ',notice->id=' . $notice->id . ',notice->scope=' . $notice->scope);
+
+ // Is it private scope?
+ $inScope = $notice->isCurrentProfileInScope();
+
+ // Return result
+ //* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] this->tag=' . $this->tag . ',this->weight=' . $this->weight . ',inScope=' . intval($inScope) . ' - EXIT!');
+ return $inScope;
+ }
}