Hi Rob.
There is not presently any password protection built into PanelBuilder for using a CustomPanel. One common approach employed by panel developers is to create a semi-transparent overlay as the top layer of their panel and put a text field on it - if the user types the correct value into the text field, the overlay is hidden and the panel is usable.

<abs contexttype="opengear" gridaspect="false" gridheight="203" gridwidth="1304" touch="true" virtualheight="203" virtualwidth="1304">
<meta>
<params>
<param access="1" maxlength="0" name="password" oid="password" type="STRING" value="" widget="password"/>
</params>
<ogscript handles="onload">ogscript.toTop('overlay');</ogscript>
</meta>
<abs bottom="0" id="overlay" left="0" right="0" style="bg#00000065;" top="0" virtualheight="203" virtualwidth="1304">
<param expand="true" height="48" left="380" oid="password" top="77" width="303"/>
<button buttontype="push" height="55" left="688" name="Go!" top="73" width="63">
<task tasktype="ogscript">if (params.getValue('password', 0) == 'password')
{
ogscript.hide('overlay');
}
params.setValue('password', 0, '');</task>
</button>
</abs>
<button buttontype="push" height="141" left="62" name="PUSH ME!" top="34" width="326"/>
<button bottom="7" buttontype="push" height="63" name="Logout" right="7" width="217">
<task tasktype="ogscript">ogscript.reveal('overlay');</task>
</button>
</abs>
#DashBoard