]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Notice_tag.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / classes / Notice_tag.php
index 77c89dc8ce8713bc0b0306d22cd24302b19dce49..78ef5136bd95aa49b697fefdb5c7a6f0cd80e8f5 100644 (file)
@@ -29,10 +29,6 @@ class Notice_tag extends Managed_DataObject
     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
 
@@ -52,6 +48,7 @@ class Notice_tag extends Managed_DataObject
             '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')
             ),
         );
     }
@@ -71,11 +68,6 @@ class Notice_tag extends Managed_DataObject
         }
     }
 
-    function pkeyGet($kv)
-    {
-        return Memcached_DataObject::pkeyGet('Notice_tag', $kv);
-    }
-
        static function url($tag)
        {
                if (common_config('singleuser', 'enabled')) {
@@ -90,4 +82,35 @@ class Notice_tag extends Managed_DataObject
 
                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;
+    }
 }