Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > b3a1f4d91c26f535919e39e25606614a > files > 973

wt-doc-3.2.3-1.fc18.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Wt: Wt::Auth::AuthModel Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Wt
   &#160;<span id="projectnumber">3.2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceWt.html">Wt</a>      </li>
      <li class="navelem"><a class="el" href="namespaceWt_1_1Auth.html">Auth</a>      </li>
      <li class="navelem"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html">AuthModel</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a>  </div>
  <div class="headertitle">
<div class="title">Wt::Auth::AuthModel Class Reference<div class="ingroups"><a class="el" href="group__auth.html">Authentication module (Wt::Auth)</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Wt::Auth::AuthModel" --><!-- doxytag: inherits="Wt::Auth::FormBaseModel" -->
<p>Model for implementing an authentication view.  
 <a href="classWt_1_1Auth_1_1AuthModel.html#details">More...</a></p>

<p><code>#include &lt;Wt/Auth/AuthModel&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Wt::Auth::AuthModel:</div>
<div class="dyncontent">
<div class="center"><img src="classWt_1_1Auth_1_1AuthModel__inherit__graph.png" border="0" usemap="#Wt_1_1Auth_1_1AuthModel_inherit__map" alt="Inheritance graph"/></div>
<map name="Wt_1_1Auth_1_1AuthModel_inherit__map" id="Wt_1_1Auth_1_1AuthModel_inherit__map">
<area shape="rect" href="classWt_1_1Auth_1_1FormBaseModel.html" title="A base model class for authentication&#45;related forms." alt="" coords="5,155,181,181"/><area shape="rect" href="classWt_1_1WFormModel.html" title="A basic model class for forms." alt="" coords="32,80,155,107"/><area shape="rect" href="classWt_1_1WObject.html" title="A base class for objects that participate in the signal/slot system." alt="" coords="45,5,141,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classWt_1_1Auth_1_1AuthModel-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a6ccddbf64ac12bc7935c3dde5c21c362">AuthModel</a> (const <a class="el" href="classWt_1_1Auth_1_1AuthService.html">AuthService</a> &amp;baseAuth, <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> &amp;users, <a class="el" href="classWt_1_1WObject.html">WObject</a> *parent=0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a6ccddbf64ac12bc7935c3dde5c21c362"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a043fc4539b1101eb7b27e98c286e6052">reset</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the model.  <a href="#a043fc4539b1101eb7b27e98c286e6052"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#af494bb2eb10b3b42f17490da5c3a8f9d">isVisible</a> (<a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a> field) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether a field is visible.  <a href="#af494bb2eb10b3b42f17490da5c3a8f9d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a26902bf5e5b8eee16a255c936b9d3915">validateField</a> (<a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a> field)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates a field.  <a href="#a26902bf5e5b8eee16a255c936b9d3915"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a3afaf0525196b5ab7bbec1e0018290db">validate</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Validates the current input.  <a href="#a3afaf0525196b5ab7bbec1e0018290db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a99272394a3fd54b6f4f3539b7ff1c34d">configureThrottling</a> (<a class="el" href="classWt_1_1WInteractWidget.html">WInteractWidget</a> *button)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes client-side login throttling.  <a href="#a99272394a3fd54b6f4f3539b7ff1c34d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a6a28d5513979c895d8c1b2dfa67414ab">updateThrottling</a> (<a class="el" href="classWt_1_1WInteractWidget.html">WInteractWidget</a> *button)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates client-side login throttling.  <a href="#a6a28d5513979c895d8c1b2dfa67414ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#ad07261bdd2e42da588a48a2305678450">login</a> (<a class="el" href="classWt_1_1Auth_1_1Login.html">Login</a> &amp;login)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Logs the user in.  <a href="#ad07261bdd2e42da588a48a2305678450"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1Auth_1_1EmailTokenResult.html">EmailTokenResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a0a533321fd7ae52c6455a4dc52b93ce6">processEmailToken</a> (const std::string &amp;token)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Processes an email token.  <a href="#a0a533321fd7ae52c6455a4dc52b93ce6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1Auth_1_1User.html">User</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a9ebeea9a7ba1c7091fbd4910e1390fca">processAuthToken</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Detects and processes an authentication token.  <a href="#a9ebeea9a7ba1c7091fbd4910e1390fca"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a621ff81f9187ed450625ca425e1a7a6a"></a><!-- doxytag: member="Wt::Auth::AuthModel::PasswordField" ref="a621ff81f9187ed450625ca425e1a7a6a" args="" -->
static const <a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a621ff81f9187ed450625ca425e1a7a6a">PasswordField</a> = &quot;password&quot;</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Password field. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af425938e22ecb11ea2b7137ec76110ec"></a><!-- doxytag: member="Wt::Auth::AuthModel::RememberMeField" ref="af425938e22ecb11ea2b7137ec76110ec" args="" -->
static const <a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#af425938e22ecb11ea2b7137ec76110ec">RememberMeField</a> = &quot;remember-me&quot;</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remember-me field. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Model for implementing an authentication view. </p>
<p>This model implements the logic for authenticating a user (the "login" interface). It implements traditional username/password registration, and third party identification methods (although for the latter, it doesn't really do anything).</p>
<p>The model exposes three fields:</p>
<ul>
<li>LoginNameField: the login name (used as an identity for the <a class="el" href="classWt_1_1Auth_1_1Identity.html#a1d680fd0dbf7a12684a511d74081eb06" title="The login name identity.">Identity::LoginName</a> provider)</li>
<li>PasswordField: the password</li>
<li>RememberMeField: whether the login should be remembered with an authentication cookie (if that is configured in the <a class="el" href="classWt_1_1Auth_1_1AuthService.html" title="Basic authentication service.">AuthService</a>).</li>
</ul>
<p>When the model validates correctly (<a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a3afaf0525196b5ab7bbec1e0018290db" title="Validates the current input.">validate()</a> returns <code>true</code>), the entered credentials are correct. At that point you can use the <a class="el" href="classWt_1_1Auth_1_1AuthModel.html#ad07261bdd2e42da588a48a2305678450" title="Logs the user in.">login()</a> utility function to login the identified user.</p>
<p>The model can also be used when the user is already known (e.g. to implement password confirmation before a critical operation). In that case you can set a value for the LoginNameField and make this field invisible or read-only.</p>
<p>The model also provides the client-side JavaScript logic to indicate password attempt throttling (<a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a99272394a3fd54b6f4f3539b7ff1c34d" title="Initializes client-side login throttling.">configureThrottling()</a> and <a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a6a28d5513979c895d8c1b2dfa67414ab" title="Updates client-side login throttling.">updateThrottling()</a>).</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AuthWidget.html" title="An authentication widget.">AuthWidget</a> </dd></dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a6ccddbf64ac12bc7935c3dde5c21c362"></a><!-- doxytag: member="Wt::Auth::AuthModel::AuthModel" ref="a6ccddbf64ac12bc7935c3dde5c21c362" args="(const AuthService &amp;baseAuth, AbstractUserDatabase &amp;users, WObject *parent=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Wt::Auth::AuthModel::AuthModel </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1AuthService.html">AuthService</a> &amp;&#160;</td>
          <td class="paramname"><em>baseAuth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> &amp;&#160;</td>
          <td class="paramname"><em>users</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classWt_1_1WObject.html">WObject</a> *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<p>Creates a new authentication model, using a basic authentication service and user database. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a99272394a3fd54b6f4f3539b7ff1c34d"></a><!-- doxytag: member="Wt::Auth::AuthModel::configureThrottling" ref="a99272394a3fd54b6f4f3539b7ff1c34d" args="(WInteractWidget *button)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::AuthModel::configureThrottling </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1WInteractWidget.html">WInteractWidget</a> *&#160;</td>
          <td class="paramname"><em>button</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes client-side login throttling. </p>
<p>If login attempt throttling is enabled, then this may also be indicated client-side using JavaScript by disabling the login button and showing a count-down indicator. This method initializes this JavaScript utlity function for a login button.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a6a28d5513979c895d8c1b2dfa67414ab" title="Updates client-side login throttling.">updateThrottling()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af494bb2eb10b3b42f17490da5c3a8f9d"></a><!-- doxytag: member="Wt::Auth::AuthModel::isVisible" ref="af494bb2eb10b3b42f17490da5c3a8f9d" args="(Field field) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::AuthModel::isVisible </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td>
          <td class="paramname"><em>field</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns whether a field is visible. </p>
<p>In some cases not all fields of the model need to be shown. This may depend on values input for certain fields, and thus change dynamically. You may specialize this method to indicate that a certain field should be invisible.</p>
<p>The default implementation returns the value set by <a class="el" href="classWt_1_1WFormModel.html#aa3bea05b625310f549eb6ec736a2701c" title="Sets whether a field is visible.">setVisible()</a>. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1WFormModel.html#ac15d7ceee410635121a6338ca6b9df93">Wt::WFormModel</a>.</p>

</div>
</div>
<a class="anchor" id="ad07261bdd2e42da588a48a2305678450"></a><!-- doxytag: member="Wt::Auth::AuthModel::login" ref="ad07261bdd2e42da588a48a2305678450" args="(Login &amp;login)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::AuthModel::login </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1Auth_1_1Login.html">Login</a> &amp;&#160;</td>
          <td class="paramname"><em>login</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Logs the user in. </p>
<p>Logs in the user after a successful call to <a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a3afaf0525196b5ab7bbec1e0018290db" title="Validates the current input.">validate()</a>. To avoid mishaps, you should call this method immediately after a call to <a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a3afaf0525196b5ab7bbec1e0018290db" title="Validates the current input.">validate()</a>.</p>
<p>Returns whether the user could be logged in. </p>

</div>
</div>
<a class="anchor" id="a9ebeea9a7ba1c7091fbd4910e1390fca"></a><!-- doxytag: member="Wt::Auth::AuthModel::processAuthToken" ref="a9ebeea9a7ba1c7091fbd4910e1390fca" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1User.html">User</a> Wt::Auth::AuthModel::processAuthToken </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Detects and processes an authentication token. </p>
<p>This returns a user that was identified with an authentication token found in the application environment, or an invalid <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> object if this feature is not configured, or no valid cookie was found.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AuthService.html#af830912428ce28663ab6da56f74ff03e" title="Processes an authentication token.">AuthService::processAuthToken()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a0a533321fd7ae52c6455a4dc52b93ce6"></a><!-- doxytag: member="Wt::Auth::AuthModel::processEmailToken" ref="a0a533321fd7ae52c6455a4dc52b93ce6" args="(const std::string &amp;token)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classWt_1_1Auth_1_1EmailTokenResult.html">EmailTokenResult</a> Wt::Auth::AuthModel::processEmailToken </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>token</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Processes an email token. </p>
<p>This simply calls <a class="el" href="classWt_1_1Auth_1_1AuthService.html#a0c09fb5aa0e54aa1da0069ad7b116436" title="Processes an email token.">AuthService::processEmailToken()</a>. </p>

</div>
</div>
<a class="anchor" id="a043fc4539b1101eb7b27e98c286e6052"></a><!-- doxytag: member="Wt::Auth::AuthModel::reset" ref="a043fc4539b1101eb7b27e98c286e6052" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::AuthModel::reset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resets the model. </p>
<p>The default implementation clears the value of all fields, and resets the validation state to not validated. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1WFormModel.html#a32f3c9ff0302d54462939b71029d2c54">Wt::WFormModel</a>.</p>

</div>
</div>
<a class="anchor" id="a6a28d5513979c895d8c1b2dfa67414ab"></a><!-- doxytag: member="Wt::Auth::AuthModel::updateThrottling" ref="a6a28d5513979c895d8c1b2dfa67414ab" args="(WInteractWidget *button)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Wt::Auth::AuthModel::updateThrottling </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1WInteractWidget.html">WInteractWidget</a> *&#160;</td>
          <td class="paramname"><em>button</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Updates client-side login throttling. </p>
<p>This should be called after a call to attemptPasswordLogin(), if you want to reflect throttling using a client-side count-down indicator in the button.</p>
<p>You need to call <a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a99272394a3fd54b6f4f3539b7ff1c34d" title="Initializes client-side login throttling.">configureThrottling()</a> before you can do this. </p>

</div>
</div>
<a class="anchor" id="a3afaf0525196b5ab7bbec1e0018290db"></a><!-- doxytag: member="Wt::Auth::AuthModel::validate" ref="a3afaf0525196b5ab7bbec1e0018290db" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::AuthModel::validate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Validates the current input. </p>
<p>The default implementation calls <a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a26902bf5e5b8eee16a255c936b9d3915" title="Validates a field.">validateField()</a> for each field and returns <code>true</code> if all fields validated.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a26902bf5e5b8eee16a255c936b9d3915" title="Validates a field.">validateField()</a> </dd></dl>

<p>Reimplemented from <a class="el" href="classWt_1_1WFormModel.html#ab616d3fc40e0f90f9221500f72421cd0">Wt::WFormModel</a>.</p>

</div>
</div>
<a class="anchor" id="a26902bf5e5b8eee16a255c936b9d3915"></a><!-- doxytag: member="Wt::Auth::AuthModel::validateField" ref="a26902bf5e5b8eee16a255c936b9d3915" args="(Field field)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Wt::Auth::AuthModel::validateField </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classWt_1_1WFormModel.html#a33c90b8c637bc83bbc57717175a5aa52">Field</a>&#160;</td>
          <td class="paramname"><em>field</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Validates a field. </p>
<p>The default implementation uses the validator configured for the field to validate the field contents, or if no validator has been configured assumes that the field is valid.</p>
<p>You will typically customize this method for more complex validation cases.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AuthModel.html#a3afaf0525196b5ab7bbec1e0018290db" title="Validates the current input.">validate()</a>, validationResult() </dd></dl>

<p>Reimplemented from <a class="el" href="classWt_1_1WFormModel.html#aafc50707e6190e1f6b446cac3a187b98">Wt::WFormModel</a>.</p>

</div>
</div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"><address style="text-align: right; margin: 3px"><small>
Generated on Thu Nov 1 2012 for <a href="http://www.webtoolkit.eu/wt">the
C++ Web Toolkit (Wt)</a> by&nbsp;<a
href="http://www.doxygen.org/index.html"><img src="doxygen.png"
alt="doxygen" border="0" style="vertical-align: middle; display:
inline-block; height: 2em"></a> 1.7.5.1</small></address>
</body>
</html>