[

  { /* access panel spec */

    blockid=access;
    custom=com.netscape.management.msgserv.nntp.NNTPAccess;

    localvar = 
    {
      .rest.title=[titled, "\u8fde\u63a5\u9650\u5236"];
      .rest.require.login="\u8fde\u63a5\u65f6\u8ba4\u8bc1\u7528\u6237";
      .rest.gethostbyaddr="\u5c06 IP \u5730\u5740\u89e3\u6790\u4e3a\u4e3b\u673a\u540d";
      .rest.hcl.enable="\u542f\u7528\u4e3b\u673a\u9650\u5236";
      .rest.hcl.table.perm.header="\u6743\u9650";
      .rest.hcl.table.patt.header="\u4e3b\u673a\u6a21\u5f0f";
      .rest.hcl.perm.labels=["\u5141\u8bb8", "\u62d2\u7edd"];
      .rest.hcl.perm.items=["+", "-"];

      .add.title="\u6dfb\u52a0\u8fde\u63a5\u9650\u5236"
      .edit.title="\u7f16\u8f91\u8fde\u63a5\u9650\u5236"

      .perm.items=
      [
        "allow_all",
        "deny_all"
      ];
      .perm.labels=
      [
        "\u5141\u8bb8",
        "\u62d2\u7edd"
      ];
    };

    content=
    [ /* access panel contents */

      { /* require auth on connect*/
        ctrl=togglepane;
        text=$.rest.require.login;
        val=$service.nntp.network.requirelogin.nsvalue;
      }, /* require auth on connect*/

      {
        ctrl=vstrut;
        size=$g.comp.space.sep;
      },

      { /* resolve host names */
        ctrl=togglepane;
        text=$.rest.gethostbyaddr;
        val=$service.nntp.performance.gethostbyaddr.nsvalue;
      }, /* resolve host names */

      {
        ctrl=vstrut;
        size=$g.comp.space.sep;
      },

      { /* host restrictions */
        ctrl=togglepane;
        text=$.rest.hcl.enable;
        val=$service.nntp.network.dohostcontrol.nsvalue;
        content=
        [ /* host restrictions contents */
          {
            ctrl=table;
            buttonsat=east;
            stdtable=false;
            showedit=true;
            addui=hostrest;
            addtext=$g.addbutton.text;
            edittext=$g.editbutton.text;
            deltext=$g.deletebutton.text;
            editui=hostrest;
            id=hostpatterntable;
            val=$service.nntp.network.hostcontrollist;
            columns=
            [
              {
                header=$.rest.hcl.table.perm.header;
                varname="\u6743\u9650";
              },
              {
                header=$.rest.hcl.table.patt.header;
                varname="\u6a21\u5f0f";
              }
            ]
          }

        ] /* host restrictions contents */
      } /* host restrictions */

    ]; /* access panel contents */
  }, /* access panel spec */

  { /* add/edit restrictions dialog spec */

    blockid=hostrest;
    localvar=
    {
      .perm.items=
      [
        "allow_all",
        "deny_all"
      ];
      .perm.labels=
      [
        "\u5141\u8bb8",
        "\u62d2\u7edd"
      ];
      .hosts.label.wrap.size=250;
      .addrest.label="\u8f93\u5165\u4e3b\u673a IP \u5730\u5740\u6216 DNS \u540d\u79f0\u3002\u53ef\u4ee5\u4f7f\u7528\u901a\u914d\u7b26\uff0c\u4f8b\u5982\uff0c *.example.com\u3002";
    };

    content=
    [ /* start layout for dialog */

      { /* Switch board for allow/deny radiogroup and host patterns */
        ctrl=switchboard;
        switchalign=left;
        switchborder=true;
        switch=
        [ /* switch contents */

          { /* options for access */
            ctrl=choice;
            style=radio;
            items=$.perm.items;
            labels=$.perm.labels;
            val=$perm;
          } /* options for access */

        ]; /* switch contents */

        content=
        [ /* content controls of the switchboard */

          { /* pane containing label and textarea for host patterns */
              ctrl=pane;
              layout=[ybox];
              content=
              [ /* pane containing label and textarea for host patterns */

                { /* label */
                  ctrl=label;
                  text=$.addrest.label;
                  wrap=$.hosts.label.wrap.size;
                  label=hosts;
                  id=hostprompt;
                }, /* label */

                { /* comp. space */
                  ctrl=vstrut;
                  size=$g.comp.space;
                }, /* comp. space */

                {
                  label=hosts;
                  ctrl=text;
                  val=$patt;
                }

              ] /* pane containing label and textarea for host patterns */
          } /* pane containing label and textarea for host patterns */

        ]; /* content controls of the switchboard */

      } /* Switch board for allow/deny radiogroup and host patterns */
    ]; /* end layout for dialog */

  } /* add/edit restrictions dialog spec */

]

