[

  { /* access panel spec */

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

    localvar = 
    {
      .rest.title=[titled, "Connection Restrictions"];
      .rest.require.login="Authenticate users upon connect";
      .rest.gethostbyaddr="Resolve IP addresses to hostnames";
      .rest.hcl.enable="Enable Host Restrictions";
      .rest.hcl.table.perm.header="Permission";
      .rest.hcl.table.patt.header="Host Pattern";
      .rest.hcl.perm.labels=["Allow", "Deny"];
      .rest.hcl.perm.items=["+", "-"];

      .add.title="Adding Connection Restrictions"
      .edit.title="Editing Connection Restrictions"

      .perm.items=
      [
        "allow_all",
        "deny_all"
      ];
      .perm.labels=
      [
        "Allow",
        "Deny"
      ];
    };

    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="perm";
              },
              {
                header=$.rest.hcl.table.patt.header;
                varname="patt";
              }
            ]
          }

        ] /* 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=
      [
        "Allow",
        "Deny"
      ];
      .hosts.label.wrap.size=250;
      .addrest.label="Enter host IP addresses or DNS names. You can use wildcards, e.g., *.example.com. ";
    };

    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 */

]

