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
+ */
+ public function isCurrentProfileInScope () {
+ // Check scope, default is allowed
+ $inScope = TRUE;
+
+ // 1) Get notice object and set id
+ $notice = new Notice();
+ $notice->id = $this->notice_id;
+ $notice->scope = $this->scope;
+ /* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] this->tag=' . $this->tag . ',notice->id=' . $notice->id . ',notice->scope=' . $notice->scope);
+
+ // Is it private scope?
+ if ($notice->isPrivateScope()) {
+ // 2) Get current profile
+ $profile = Profile::current();
+
+ // Is the profile not set?
+ if (!$profile instanceof Profile) {
+ // Public viewer shall not see a tag from a private dent (privacy leak)
+ /* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] Not logged in, skipping ...');
+ $inScope = FALSE;
+ } elseif (!$notice->inScope($profile)) {
+ // Current profile is not in scope (not allowed to see) of notice
+ /* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] profile->id=' . $profile->id . ' is not allowed to see this tag, skipping ...');
+ $inScope = FALSE;
+ }
+ }
+
+ // Return result
+ /* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] this->tag=' . $this->tag . ',this->weight=' . $this->weight . ',inScope=' . intval($inScope) . ' - EXIT!');
+ return $inScope;
+ }
}
$sum = 0;
while ($tags->fetch()) {
// Check scope:
-
- // 1) Get notice object and set id
- $notice = new Notice();
- $notice->id = $tags->notice_id;
- $notice->scope = $tags->scope;
- /* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] tags->tag=' . $tags->tag . ',notice->id=' . $notice->id . ',notice->scope=' . $notice->scope);
-
- // Is it private scope?
- if ($notice->isPrivateScope()) {
- // 2) Get current profile
- $profile = Profile::current();
-
- // Is the profile not set?
- if (!$profile instanceof Profile) {
- // Public viewer shall not see a tag from a private dent (privacy leak)
- /* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] Not logged in, skipping ...');
- continue;
- } elseif (!$notice->inScope($profile)) {
- // Current profile is not in scope (not allowed to see) of notice
- /* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] profile->id=' . $profile->id . ' is not allowed to see this tag, skipping ...');
- continue;
- }
+ if ($tags->isCurrentProfileInScope()) {
+ $tw[$tags->tag] = $tags->weight;
+ $sum += $tags->weight;
}
-
- /* NOISY-DEBUG: */ common_debug('[' . __METHOD__ . ':' . __LINE__ . '] tags->tag=' . $tags->tag . ',tags->weight=' . $tags->weight . ' - Added!');
- $tw[$tags->tag] = $tags->weight;
- $sum += $tags->weight;
}
ksort($tw);