r4081 genericAssertion(): add "tag" case validation
authorDenis Ovsienko <infrastation@yandex.ru>
Fri, 7 Jan 2011 18:16:04 +0000 (18:16 +0000)
committerDenis Ovsienko <infrastation@yandex.ru>
Fri, 7 Jan 2011 18:16:04 +0000 (18:16 +0000)
createTag(): dismiss, obsoleted by tableHandler()
commitCreateTag(): idem

inc/database.php
inc/functions.php
inc/navigation.php
inc/ophandlers.php

index be1a5c2f670e5e65720415fba6db523ba9c3e146..9344b19f5222d6e888cec5b991f23b890a0298e4 100644 (file)
@@ -3062,21 +3062,6 @@ function getTagList ()
        return $ret;
 }
 
-function commitCreateTag ($tagname = '', $parent_id = 0)
-{
-       if ($tagname == '')
-               throw new InvalidArgException ('tagname', $tagname);
-       return usePreparedInsertBlade
-       (
-               'TagTree',
-               array
-               (
-                       'tag' => $tagname,
-                       'parent_id' => $parent_id
-               )
-       );
-}
-
 function commitDestroyTag ($tagid = 0)
 {
        if (usePreparedDeleteBlade ('TagTree', array ('id' => $tagid)))
index aec5d9ca55d50a122c0cde45f104b15e3d5c05fe..233f6055a0ca6851d75a6db4736e01ca2bc91f82 100644 (file)
@@ -218,6 +218,7 @@ function isPCRE ($arg)
 
 function genericAssertion ($argname, $argtype)
 {
+       global $sic;
        switch ($argtype)
        {
        case 'string':
@@ -235,6 +236,11 @@ function genericAssertion ($argname, $argtype)
        case 'inet4':
                assertIPv4Arg ($argname);
                break;
+       case 'tag':
+               assertStringArg ($argname);
+               if (!validTagName ($sic[$argname]))
+                       throw new InvalidRequestArgException ($argname, $sic[$argname], 'Invalid tag name');
+               break;
        default:
                throw new InvalidArgException ('argtype', $argtype); // comes not from user's input
        }
index cee56c56dc3892e34ec2157aaba6951ae31ab8cb..2238f8db64cf572ad09894403c8a07bf9784279d 100644 (file)
@@ -503,8 +503,17 @@ $tab['tagtree']['edit'] = 'Edit';
 $tabhandler['tagtree']['default'] = 'renderTagTree';
 $tabhandler['tagtree']['edit'] = 'renderTagTreeEditor';
 $ophandler['tagtree']['edit']['destroyTag'] = 'destroyTag';
-$ophandler['tagtree']['edit']['createTag'] = 'createTag';
 $ophandler['tagtree']['edit']['updateTag'] = 'updateTag';
+$ophandler['tagtree']['edit']['createTag'] = array
+(
+       'table' => 'TagTree',
+       'action' => 'INSERT',
+       'arglist' => array
+       (
+               array ('url_argname' => 'tag_name', 'table_colname' => 'tag', 'assertion' => 'tag'),
+               array ('url_argname' => 'parent_id', 'assertion' => 'uint0', 'if_empty' => 'NULL'),
+       ),
+);
 
 $page['myaccount']['title'] = 'My account';
 $page['myaccount']['parent'] = 'config';
index 5e9a8fe66b4f44a8a8978b74ddc6c15d9185a390..94645dbeba9593b44e039644f2cbb3bbf729e6c5 100644 (file)
@@ -1621,23 +1621,6 @@ function destroyTag ()
                return buildRedirectURL (__FUNCTION__, 'ERR2');
 }
 
-$msgcode['createTag']['OK'] = 59;
-$msgcode['createTag']['ERR1'] = 145;
-$msgcode['createTag']['ERR3'] = 147;
-function createTag ()
-{
-       assertStringArg ('tag_name');
-       assertUIntArg ('parent_id', TRUE);
-       $tagname = trim ($_REQUEST['tag_name']);
-       if (!validTagName ($tagname))
-               return buildRedirectURL (__FUNCTION__, 'ERR1', array ($tagname));
-       if (($parent_id = $_REQUEST['parent_id']) <= 0)
-               $parent_id = NULL;
-       if (FALSE === commitCreateTag ($tagname, $parent_id))
-               return buildRedirectURL (__FUNCTION__, 'ERR3', array (niftyString ($tagname)));
-       return buildRedirectURL (__FUNCTION__, 'OK', array (niftyString ($tagname)));
-}
-
 $msgcode['updateTag']['OK'] = 60;
 $msgcode['updateTag']['ERR1'] = 145;
 $msgcode['updateTag']['ERR2'] = 109;