Sophie

Sophie

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

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::Dbo::UserDatabase&lt; DboType &gt; Class Template 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"><b>Dbo</b>      </li>
      <li class="navelem"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">UserDatabase</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Wt::Auth::Dbo::UserDatabase&lt; DboType &gt; Class Template 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::Dbo::UserDatabase" --><!-- doxytag: inherits="Wt::Auth::AbstractUserDatabase" -->
<p>A default implementation for a authentication data in Wt::Dbo.  
 <a href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#details">More...</a></p>

<p><code>#include &lt;Wt/Auth/Dbo/UserDatabase&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Wt::Auth::Dbo::UserDatabase&lt; DboType &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classWt_1_1Auth_1_1Dbo_1_1UserDatabase__inherit__graph.png" border="0" usemap="#Wt_1_1Auth_1_1Dbo_1_1UserDatabase_3_01DboType_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="Wt_1_1Auth_1_1Dbo_1_1UserDatabase_3_01DboType_01_4_inherit__map" id="Wt_1_1Auth_1_1Dbo_1_1UserDatabase_3_01DboType_01_4_inherit__map">
<area shape="rect" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database." alt="" coords="35,5,245,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase-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"><a class="anchor" id="af67258895f54effd1bca5a4df6bf0849"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::UserDatabase" ref="af67258895f54effd1bca5a4df6bf0849" args="(Wt::Dbo::Session &amp;session)" -->
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#af67258895f54effd1bca5a4df6bf0849">UserDatabase</a> (<a class="el" href="classWt_1_1Dbo_1_1Session.html">Wt::Dbo::Session</a> &amp;session)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase_1_1Transaction.html">Transaction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a45bb818735ce31769dad03ead2630ce4">startTransaction</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new database transaction.  <a href="#a45bb818735ce31769dad03ead2630ce4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a061113cf6fe3f05cd26a47a853f1a71c"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::find" ref="a061113cf6fe3f05cd26a47a853f1a71c" args="(const User &amp;user) const " -->
<a class="el" href="classWt_1_1Dbo_1_1ptr.html">Wt::Dbo::ptr</a>&lt; DboType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a061113cf6fe3f05cd26a47a853f1a71c">find</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Dbo user type corresponding to an <a class="el" href="classWt_1_1Auth_1_1User.html" title="A user.">Auth::User</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4396e171538436295d273df4ed648b59"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::find" ref="a4396e171538436295d273df4ed648b59" args="(const Wt::Dbo::ptr&lt; DboType &gt; user) const " -->
<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_1Dbo_1_1UserDatabase.html#a4396e171538436295d273df4ed648b59">find</a> (const <a class="el" href="classWt_1_1Dbo_1_1ptr.html">Wt::Dbo::ptr</a>&lt; DboType &gt; user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <a class="el" href="classWt_1_1Auth_1_1User.html" title="A user.">Auth::User</a> corresponding to a Dbo user. <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_1Dbo_1_1UserDatabase.html#a1399d167a43b3c63f1f7ebe79abeba4e">findWithId</a> (const std::string &amp;id) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a user with a given id.  <a href="#a1399d167a43b3c63f1f7ebe79abeba4e"></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_1Dbo_1_1UserDatabase.html#a424b0a6527e1316f9684e1956232c8ad">findWithIdentity</a> (const std::string &amp;provider, const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;identity) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a user with a given identity.  <a href="#a424b0a6527e1316f9684e1956232c8ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1WString.html">WString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a58b5b1ea88ed322f54dabd923bbb53dd">identity</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const std::string &amp;provider) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a user identity.  <a href="#a58b5b1ea88ed322f54dabd923bbb53dd"></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_1Dbo_1_1UserDatabase.html#a74f53d62b49a0be5b46456a2373d3ba7">registerNew</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a new user.  <a href="#a74f53d62b49a0be5b46456a2373d3ba7"></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_1Dbo_1_1UserDatabase.html#a5b2ede866d7e93f17d8bd1183d255854">deleteUser</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a user.  <a href="#a5b2ede866d7e93f17d8bd1183d255854"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">User::Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a9a0ca45665d71eaa6cfceba977099b2d">status</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status for a user.  <a href="#a9a0ca45665d71eaa6cfceba977099b2d"></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_1Dbo_1_1UserDatabase.html#a285ce48322c12e4e51e7fadbc3755574">setPassword</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const <a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> &amp;password)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new user password.  <a href="#a285ce48322c12e4e51e7fadbc3755574"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a577c4170630f85ab0b2424bd0d0271ef">password</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a user password.  <a href="#a577c4170630f85ab0b2424bd0d0271ef"></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_1Dbo_1_1UserDatabase.html#a92990ca73bd79b9558394d96e5b53abf">addIdentity</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const std::string &amp;provider, const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;identity)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets an identifier for the user.  <a href="#a92990ca73bd79b9558394d96e5b53abf"></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_1Dbo_1_1UserDatabase.html#a07362974d7709189d7b9ae38cf726fb1">setEmail</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const std::string &amp;address)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a user's email address.  <a href="#a07362974d7709189d7b9ae38cf726fb1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a5fba94f7ad74b08bde2d76e1782923e6">email</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a user's email address.  <a href="#a5fba94f7ad74b08bde2d76e1782923e6"></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_1Dbo_1_1UserDatabase.html#a4dd5ba163f90e1e91ae3d4a5b372812c">setUnverifiedEmail</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const std::string &amp;address)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a user's unverified email address.  <a href="#a4dd5ba163f90e1e91ae3d4a5b372812c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#ab9c9fed997b9ff17b00c5101eef95153">unverifiedEmail</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a user's unverified email address.  <a href="#ab9c9fed997b9ff17b00c5101eef95153"></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_1Dbo_1_1UserDatabase.html#a12419c6b03ae0308f4061277f7835613">findWithEmail</a> (const std::string &amp;address) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a user with a given email address.  <a href="#a12419c6b03ae0308f4061277f7835613"></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_1Dbo_1_1UserDatabase.html#a4dfd0cf66dce6b42f51063549c2402fd">setEmailToken</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &amp;token, <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">User::EmailTokenRole</a> role)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new email token for a user.  <a href="#a4dfd0cf66dce6b42f51063549c2402fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#af3d9d785708806480276f7586c89390a">emailToken</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an email token.  <a href="#af3d9d785708806480276f7586c89390a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">User::EmailTokenRole</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a7a918433f0ac66db865c786a38a0822f">emailTokenRole</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the role of the current email token.  <a href="#a7a918433f0ac66db865c786a38a0822f"></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_1Dbo_1_1UserDatabase.html#a58f314d03f6a7593e2ae084a86a5e542">findWithEmailToken</a> (const std::string &amp;hash) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a user with a given email token.  <a href="#a58f314d03f6a7593e2ae084a86a5e542"></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_1Dbo_1_1UserDatabase.html#a4ee55ce44a6d4a6cacf1f40681d7fbbe">addAuthToken</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &amp;token)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an authentication token to a user.  <a href="#a4ee55ce44a6d4a6cacf1f40681d7fbbe"></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_1Dbo_1_1UserDatabase.html#a58700c257c1613772608c395668fb473">removeAuthToken</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const std::string &amp;hash)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes an authentication token.  <a href="#a58700c257c1613772608c395668fb473"></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_1Dbo_1_1UserDatabase.html#a91ef2bdcd34ede0ab671dc578a3f735e">findWithAuthToken</a> (const std::string &amp;hash) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a user with an authentication token.  <a href="#a91ef2bdcd34ede0ab671dc578a3f735e"></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_1Dbo_1_1UserDatabase.html#a8b4c7df8f1bb4a751140f4e58c47de2c">setFailedLoginAttempts</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, int count)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the number of consecutive authentication failures.  <a href="#a8b4c7df8f1bb4a751140f4e58c47de2c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a82c913d5040e6d1c3bf4dc0f42e052f2">failedLoginAttempts</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of consecutive authentication failures.  <a href="#a82c913d5040e6d1c3bf4dc0f42e052f2"></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_1Dbo_1_1UserDatabase.html#a0eac750824c712427221df323f122b3c">setLastLoginAttempt</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user, const <a class="el" href="classWt_1_1WDateTime.html">WDateTime</a> &amp;t)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the time of the last login attempt.  <a href="#a0eac750824c712427221df323f122b3c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classWt_1_1WDateTime.html">WDateTime</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#af66c0b5f4075e8f2ee3e5b9ca932f5b7">lastLoginAttempt</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;user) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the time of the last login.  <a href="#af66c0b5f4075e8f2ee3e5b9ca932f5b7"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;class DboType&gt;<br/>
class Wt::Auth::Dbo::UserDatabase&lt; DboType &gt;</h3>

<p>A default implementation for a authentication data in Wt::Dbo. </p>
<p>This is a template class, and needs as parameter the <a class="el" href="namespaceWt_1_1Dbo.html" title="Namespace for the Database Objects (Wt::Dbo).">Dbo</a> type which models holds the authentication information. A suitable implementation, which stores authentication information outside the "user" class, is provided by <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1AuthInfo.html" title="A default implementation for authentication data in Wt::Dbo.">AuthInfo</a>.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html" title="A default implementation for a authentication data in Wt::Dbo.">UserDatabase</a> </dd></dl>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a4ee55ce44a6d4a6cacf1f40681d7fbbe"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::addAuthToken" ref="a4ee55ce44a6d4a6cacf1f40681d7fbbe" args="(const User &amp;user, const Token &amp;token)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::addAuthToken </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &amp;&#160;</td>
          <td class="paramname"><em>token</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds an authentication token to a user. </p>
<p>Unless you want a user to only have remember-me support from a single computer at a time, you should support multiple authentication tokens per user. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#aa9e6675aad111e35b2725ced17208211">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a92990ca73bd79b9558394d96e5b53abf"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::addIdentity" ref="a92990ca73bd79b9558394d96e5b53abf" args="(const User &amp;user, const std::string &amp;provider, const WString &amp;identity)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::addIdentity </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>provider</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;&#160;</td>
          <td class="paramname"><em>id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets an identifier for the user. </p>
<p>This associates an identifier with the user.</p>
<p>You are free to support only one identity per user, e.g. if you only use password-based authentication. But you may also want to support more than one if you allow the user to login using multiple methods (e.g. name/password, OAuth from one or more providers, LDAP, ...). </p>

<p>Implements <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#ab97a74c1009a6c72e3f1b897246eb982">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a5b2ede866d7e93f17d8bd1183d255854"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::deleteUser" ref="a5b2ede866d7e93f17d8bd1183d255854" args="(const User &amp;user)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::deleteUser </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a user. </p>
<p>This deletes a user from the database. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a5067e569748cfad8c3356735a33aa10f">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a5fba94f7ad74b08bde2d76e1782923e6"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::email" ref="a5fba94f7ad74b08bde2d76e1782923e6" args="(const User &amp;user) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::email </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a user's email address. </p>
<p>This may be an unverified or verified email address, depending on whether email address verification is enabled in the model classes.</p>
<p>This is an optional method, and currently not used by any of the included models or views. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a15fa807c21115be032626a4a4b661015">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="af3d9d785708806480276f7586c89390a"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::emailToken" ref="af3d9d785708806480276f7586c89390a" args="(const User &amp;user) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::emailToken </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns an email token. </p>
<p>This is only used when email verification is enabled and for lost password functionality. It should return the email token previously set with <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a4dfd0cf66dce6b42f51063549c2402fd" title="Sets a new email token for a user.">setEmailToken()</a> </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#af97442ab53528b3609a9e102bf4ec149">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a7a918433f0ac66db865c786a38a0822f"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::emailTokenRole" ref="a7a918433f0ac66db865c786a38a0822f" args="(const User &amp;user) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">User::EmailTokenRole</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::emailTokenRole </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the role of the current email token. </p>
<p>This is only used when email verification is enabled or for lost password functionality. It should return the role previously set with setEailToken(). </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#ad92251a0fe300577a4227f3ffbe01349">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a82c913d5040e6d1c3bf4dc0f42e052f2"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::failedLoginAttempts" ref="a82c913d5040e6d1c3bf4dc0f42e052f2" args="(const User &amp;user) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual int <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::failedLoginAttempts </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of consecutive authentication failures. </p>
<p><em><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a8b4c7df8f1bb4a751140f4e58c47de2c" title="Sets the number of consecutive authentication failures.">setFailedLoginAttempts()</a></em> </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#ae659dd936613346de1edad3bc91f700c">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a91ef2bdcd34ede0ab671dc578a3f735e"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::findWithAuthToken" ref="a91ef2bdcd34ede0ab671dc578a3f735e" args="(const std::string &amp;hash) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::findWithAuthToken </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>hash</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds a user with an authentication token. </p>
<p>Returns a user with an authentication token.</p>
<p>This should find the user associated with a particular token hash, or return an invalid user if no user with that token hash exists. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#ac464256e227b6141d7ad5a7c2612d1fb">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a12419c6b03ae0308f4061277f7835613"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::findWithEmail" ref="a12419c6b03ae0308f4061277f7835613" args="(const std::string &amp;address) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::findWithEmail </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>address</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds a user with a given email address. </p>
<p>This is used to verify that a email addresses are unique, and to implement lost password functionality. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a29e3c7e2e82500882453d193d4c89f78">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a58f314d03f6a7593e2ae084a86a5e542"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::findWithEmailToken" ref="a58f314d03f6a7593e2ae084a86a5e542" args="(const std::string &amp;hash) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::findWithEmailToken </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>hash</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds a user with a given email token. </p>
<p>This is only used when email verification is enabled or for lost password functionality. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a5c1c2c63f45f6b9dc81e99020d0faaab">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a1399d167a43b3c63f1f7ebe79abeba4e"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::findWithId" ref="a1399d167a43b3c63f1f7ebe79abeba4e" args="(const std::string &amp;id) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::findWithId </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds a user with a given id. </p>
<p>The id uniquely identifies a user.</p>
<p>This should find the user with the given <code>id</code>, or return an invalid user if no user with that id exists. </p>

<p>Implements <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#afe820eed084f426a89cc7276d5db3e0f">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a424b0a6527e1316f9684e1956232c8ad"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::findWithIdentity" ref="a424b0a6527e1316f9684e1956232c8ad" args="(const std::string &amp;provider, const WString &amp;identity) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::findWithIdentity </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>provider</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classWt_1_1WString.html">WString</a> &amp;&#160;</td>
          <td class="paramname"><em>identity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds a user with a given identity. </p>
<p>The <code>identity</code> uniquely identifies the user by the <code>provider</code>.</p>
<p>This should find the user with the given <code>identity</code>, or return an invalid user if no user with that identity exists. </p>

<p>Implements <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#ad86157a5d896af38825d9575fa8f8eae">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a58b5b1ea88ed322f54dabd923bbb53dd"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::identity" ref="a58b5b1ea88ed322f54dabd923bbb53dd" args="(const User &amp;user, const std::string &amp;provider) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1WString.html">WString</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::identity </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>provider</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a user identity. </p>
<p>Returns a user identity for the given provider, or an empty string if the user has no identitfy set for this provider.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a92990ca73bd79b9558394d96e5b53abf" title="Sets an identifier for the user.">addIdentity()</a> </dd></dl>

<p>Implements <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a299a308436b353c2f91162244333c173">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="af66c0b5f4075e8f2ee3e5b9ca932f5b7"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::lastLoginAttempt" ref="af66c0b5f4075e8f2ee3e5b9ca932f5b7" args="(const User &amp;user) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1WDateTime.html">WDateTime</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::lastLoginAttempt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the time of the last login. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a0eac750824c712427221df323f122b3c" title="Sets the time of the last login attempt.">setLastLoginAttempt()</a> </dd></dl>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#ae49650f598ed0474c03f58b20cf05e07">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a577c4170630f85ab0b2424bd0d0271ef"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::password" ref="a577c4170630f85ab0b2424bd0d0271ef" args="(const User &amp;user) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::password </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a user password. </p>
<p>This returns the stored password for a user, or a default constructed password hash if the user does not yet have password credentials.</p>
<p>This is used only by <a class="el" href="classWt_1_1Auth_1_1PasswordService.html" title="Password authentication service.">PasswordService</a>. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#abdea1a684e09897d33e2d6ed4ce27ff8">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a74f53d62b49a0be5b46456a2373d3ba7"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::registerNew" ref="a74f53d62b49a0be5b46456a2373d3ba7" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::registerNew </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Registers a new user. </p>
<p>This adds a new user.</p>
<p>This method is only used by view classes involved with registration (<a class="el" href="classWt_1_1Auth_1_1RegistrationWidget.html" title="A registration widget.">RegistrationWidget</a>). </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a14e8b7552a2fe578665970860c48fa27">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a58700c257c1613772608c395668fb473"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::removeAuthToken" ref="a58700c257c1613772608c395668fb473" args="(const User &amp;user, const std::string &amp;hash)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::removeAuthToken </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Deletes an authentication token. </p>
<p>Deletes an authentication token previously added with <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a4ee55ce44a6d4a6cacf1f40681d7fbbe" title="Adds an authentication token to a user.">addAuthToken()</a> </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#acfe2c37b3ecaf468cb9663a2cd83a980">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a07362974d7709189d7b9ae38cf726fb1"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::setEmail" ref="a07362974d7709189d7b9ae38cf726fb1" args="(const User &amp;user, const std::string &amp;address)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::setEmail </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets a user's email address. </p>
<p>This is used only when email verification is enabled, or as a result of a 3rd party <a class="el" href="classWt_1_1Auth_1_1Identity.html" title="A class that represents a user identity.">Identity</a> Provider based registration process, if the provider also provides email address information with the identiy.</p>
<p>Returns whether the user's email address could be set. This may fail when there is already a user registered that email address.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#a12419c6b03ae0308f4061277f7835613" title="Finds a user with a given email address.">findWithEmail()</a> </dd></dl>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a9f24e4a83a20e24dd8ac64558db51559">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a4dfd0cf66dce6b42f51063549c2402fd"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::setEmailToken" ref="a4dfd0cf66dce6b42f51063549c2402fd" args="(const User &amp;user, const Token &amp;token, User::EmailTokenRole role)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::setEmailToken </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &amp;&#160;</td>
          <td class="paramname"><em>token</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">User::EmailTokenRole</a>&#160;</td>
          <td class="paramname"><em>role</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets a new email token for a user. </p>
<p>This is only used when email verification is enabled or for lost password functionality. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a3f12058159d7e2ea45ebc2e72b568942">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a8b4c7df8f1bb4a751140f4e58c47de2c"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::setFailedLoginAttempts" ref="a8b4c7df8f1bb4a751140f4e58c47de2c" args="(const User &amp;user, int count)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::setFailedLoginAttempts </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the number of consecutive authentication failures. </p>
<p>This sets the number of consecutive authentication failures since the last valid login.</p>
<p>This is used by the throttling logic to determine how much time a user needs to wait before he can do a new login attempt. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a4e146059644458af7fa650f17416471a">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a0eac750824c712427221df323f122b3c"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::setLastLoginAttempt" ref="a0eac750824c712427221df323f122b3c" args="(const User &amp;user, const WDateTime &amp;t)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::setLastLoginAttempt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classWt_1_1WDateTime.html">WDateTime</a> &amp;&#160;</td>
          <td class="paramname"><em>t</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the time of the last login attempt. </p>
<p>This sets the time at which the user attempted to login. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a4f8b8b76e3202b9b86e40649958617e2">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a285ce48322c12e4e51e7fadbc3755574"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::setPassword" ref="a285ce48322c12e4e51e7fadbc3755574" args="(const User &amp;user, const PasswordHash &amp;password)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::setPassword </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> &amp;&#160;</td>
          <td class="paramname"><em>password</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets a new user password. </p>
<p>This updates the password for a user.</p>
<p>This is used only by <a class="el" href="classWt_1_1Auth_1_1PasswordService.html" title="Password authentication service.">PasswordService</a>. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a489310f977a7c22c7b29ec89fba297cc">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a4dd5ba163f90e1e91ae3d4a5b372812c"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::setUnverifiedEmail" ref="a4dd5ba163f90e1e91ae3d4a5b372812c" args="(const User &amp;user, const std::string &amp;address)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::setUnverifiedEmail </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets a user's unverified email address. </p>
<p>This is only used when email verification is enabled. It holds the currently unverified email address, while a mail is being sent for the user to confirm this email address. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#aa3709b846d8949b6a411c8494496aa55">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a45bb818735ce31769dad03ead2630ce4"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::startTransaction" ref="a45bb818735ce31769dad03ead2630ce4" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase_1_1Transaction.html">Transaction</a>* <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::startTransaction </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a new database transaction. </p>
<p>If the underlying database does not support transactions, you can return <code>0</code>.</p>
<p>Ownership of the transaction is transferred, and the transaction must be deleted after it has been committed or rolled back.</p>
<p>The default implementation returns <code>0</code> (no transaction support). </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#afdc5c2f3dccb1a0208633949c067c3f2">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="a9a0ca45665d71eaa6cfceba977099b2d"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::status" ref="a9a0ca45665d71eaa6cfceba977099b2d" args="(const User &amp;user) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">User::Status</a> <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::status </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the status for a user. </p>
<p>If there is support for suspending accounts, then this method may be implemented to return whether a user account is disabled.</p>
<p>The default implementation always returns <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437a4bdc87727a5f54db977b9e192f05e689" title="Normal status.">User::Normal</a>.</p>
<dl class="see"><dt><b>See also:</b></dt><dd>Login::loginState() </dd></dl>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a64fba754661708d4c25219e46c5fe1b6">Wt::Auth::AbstractUserDatabase</a>.</p>

</div>
</div>
<a class="anchor" id="ab9c9fed997b9ff17b00c5101eef95153"></a><!-- doxytag: member="Wt::Auth::Dbo::UserDatabase::unverifiedEmail" ref="ab9c9fed997b9ff17b00c5101eef95153" args="(const User &amp;user) const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DboType &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual std::string <a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase</a>&lt; DboType &gt;::unverifiedEmail </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &amp;&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a user's unverified email address. </p>
<p>This is an optional method, and currently not used by any of the included models or views. </p>

<p>Reimplemented from <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a041239ea5a0ef0a0907c045abf29f687">Wt::Auth::AbstractUserDatabase</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>