r2382 - getTagByName(): new helper function
authorDenis Ovsienko <infrastation@yandex.ru>
Sun, 1 Feb 2009 10:59:13 +0000 (10:59 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Sun, 1 Feb 2009 10:59:13 +0000 (10:59 +0000)
 - processAdjustmentSentence(): add full taginfo on "insert" requests
 - user_tags subchain doesn't exist any more, the contents has moved into standard expl_tags and impl_tags chains

inc/auth.php
inc/code.php
inc/functions.php
inc/init.php
inc/interface.php

index 0c0d2b69d177f4eb9ed9644921eddffc1f1af6ab..8b96aaac883515c5441cc1d120ca460642b3eb95 100644 (file)
@@ -110,9 +110,7 @@ function dieWith401 ()
 function permitted ($p = NULL, $t = NULL, $o = NULL, $annex = array())
 {
        global $pageno, $tabno, $op;
-       global
-               $user_tags,
-               $auto_tags;
+       global $auto_tags;
 
        if ($p === NULL)
                $p = $pageno;
@@ -128,7 +126,6 @@ function permitted ($p = NULL, $t = NULL, $o = NULL, $annex = array())
        }
        $subject = array_merge
        (
-               $user_tags,
                $my_auto_tags,
                $annex
        );
index 2ff2caca2681b2f79b589bd957e93dc4f2a5b512..f10c1b57d2042ea7e45fc9d2b671df7bfa04e5fa 100644 (file)
@@ -733,7 +733,10 @@ function processAdjustmentSentence ($modlist, &$chain)
                                foreach ($chain as $etag)
                                        if ($etag['tag'] == $mod['tag']) // already there, next request
                                                break 2;
-                               $chain[] = array ('tag' => $mod['tag']);
+                               $search = getTagByName ($mod['tag']);
+                               if ($search === NULL) // skip martians silently
+                                       break;
+                               $chain[] = $search;
                                $didChanges = TRUE;
                                break;
                        case 'remove':
index d708ed1e8cc12c2b3a57590eb0d39bd10d5d3445..f578c82a41ecd08070e90764896a14fa86f5af21 100644 (file)
@@ -1201,6 +1201,16 @@ function getObjectiveTagTree ($tree, $realm)
        return $ret;
 }
 
+// Get taginfo record by tag name, return NULL, if record doesn't exist.
+function getTagByName ($target_name)
+{
+       global $taglist;
+       foreach ($taglist as $taginfo)
+               if ($taginfo['tag'] == $target_name)
+                       return $taginfo;
+       return NULL;
+}
+
 function getTagFilter ()
 {
        return isset ($_REQUEST['tagfilter']) ? complementByKids ($_REQUEST['tagfilter']) : array();
index 505ac9a12c7e6a64881e9341e2e8c43ca6a2e4d1..413f7fa90f75edc57c98110d61ff41049dc9457a 100644 (file)
@@ -154,20 +154,17 @@ require_once 'inc/snmp.php';
 if (file_exists ('inc/local.php'))
        require_once 'inc/local.php';
 
-// These will be filled in by fixContext()
+// These will be extended later by fixContext()
 $expl_tags = array();
 $impl_tags = array();
-// and this will remain constant
-if (isset ($script_mode) and $script_mode === TRUE)
-       $user_tags = array();
-else
+if (!isset ($script_mode) or $script_mode !== TRUE)
 {
-       $user_tags = getUserAutoTags();
+       $auto_tags = array_merge ($auto_tags, getUserAutoTags());
        if (isset ($accounts[$remote_username]))
        {
                $tbase = loadUserTags ($accounts[$remote_username]['user_id']);
-               $textra = getImplicitTags ($tbase); 
-               $user_tags = array_merge ($user_tags, $tbase, $textra);
+               $expl_tags = array_merge ($expl_tags, $tbase);
+               $impl_tags = getImplicitTags ($tbase); 
        }
 }
 
index 943b2264e7417ac4a919549ad09580567e4a639f..edaffe047e8211a8caebcc3b0269c6f688a3f110 100644 (file)
@@ -5423,7 +5423,7 @@ function renderAccessDenied ()
        echo "<link rel=icon href='" . getFaviconURL() . "' type='image/x-icon' />";
        echo "<link rel=icon href='" . getFaviconURL() . "' type='image/x-icon' />";
        echo "</head><body>";
-       global $root, $user_tags, $auto_tags, $expl_tags, $impl_tags, $pageno, $tabno;
+       global $root, $auto_tags, $expl_tags, $impl_tags, $pageno, $tabno;
        echo "<table border=1 cellspacing=0 cellpadding=3 width='50%' align=center>\n";
        echo '<tr><th colspan=2><h3>';
        printImageHREF ('DENIED');
@@ -5436,8 +5436,6 @@ function renderAccessDenied ()
        echo serializeTags ($impl_tags) . "&nbsp;</td></tr>\n";
        echo "<tr><th width='50%' class=tdright><span class=tagheader>Automatic tags</span>:</th><td class=tdleft>";
        echo serializeTags ($auto_tags) . "&nbsp;</td></tr>\n";
-       echo "<tr><th width='50%' class=tdright><span class=tagheader>This user tags</span>:</th><td class=tdleft>";
-       echo serializeTags ($user_tags) . "&nbsp;</td></tr>\n";
        echo "<tr><th width='50%' class=tdright>Requested page:</th><td class=tdleft>${pageno}</td></tr>\n";
        echo "<tr><th width='50%' class=tdright>Requested tab:</th><td class=tdleft>${tabno}</td></tr>\n";
        echo "<tr><td colspan=2 align=center>Click <a href='${root}?logout'>here</a> to logout.</td></tr>\n";