<!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::User 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  <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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 List</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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_1User.html">User</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> </div> <div class="headertitle"> <div class="title">Wt::Auth::User 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::User" --> <p>A user. <a href="classWt_1_1Auth_1_1User.html#details">More...</a></p> <p><code>#include <Wt/Auth/User></code></p> <p><a href="classWt_1_1Auth_1_1User-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-types"></a> Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">Status</a> { <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437a35904fc75f2d7a6dd52f952487603a1d">Disabled</a>, <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437a4bdc87727a5f54db977b9e192f05e689">Normal</a> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Enumeration for a user's account status. <a href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">EmailTokenRole</a> { <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674ba17d35cc3b85d25c5d3fbfccc8068752b">VerifyEmail</a>, <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674ba0261f8dbe3766d885a2be9d7619c85d0">LostPassword</a> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Enumeration for an email token stored for the user. <a href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a2319756742238e5f4809d754e2fc735b">User</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <a href="#a2319756742238e5f4809d754e2fc735b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a2bd7e605d6bac3210076a260fab24d4d">User</a> (const std::string &id, const <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> &database)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a2bd7e605d6bac3210076a260fab24d4d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#aafdb7f7f04974280d0c2b3e30528a1f8">database</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the user database. <a href="#aafdb7f7f04974280d0c2b3e30528a1f8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#ab1387f9ab708ef08a5228cf60cb0428c">operator==</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &other) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Comparison operator. <a href="#ab1387f9ab708ef08a5228cf60cb0428c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a8628e4b9a6e39a44349ab7a773dc0e6c">operator!=</a> (const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> &other) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Comparison operator. <a href="#a8628e4b9a6e39a44349ab7a773dc0e6c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a933b6fc5683f4ee3f2c414bcb2440202">isValid</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns whether the user is valid. <a href="#a933b6fc5683f4ee3f2c414bcb2440202"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#acdacd8abd3702d9a8e76c75b64c90c9d">id</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the user id. <a href="#acdacd8abd3702d9a8e76c75b64c90c9d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45dbcefef2dfd32ec99b6d7cc3c3ad34"></a><!-- doxytag: member="Wt::Auth::User::identity" ref="a45dbcefef2dfd32ec99b6d7cc3c3ad34" args="(const std::string &provider) const " --> <a class="el" href="classWt_1_1WString.html">WString</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a45dbcefef2dfd32ec99b6d7cc3c3ad34">identity</a> (const std::string &provider) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the user's identity. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a373651abdd3454d64dc634bbae53ceec"></a><!-- doxytag: member="Wt::Auth::User::addIdentity" ref="a373651abdd3454d64dc634bbae53ceec" args="(const std::string &provider, const WString &identity)" --> void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a373651abdd3454d64dc634bbae53ceec">addIdentity</a> (const std::string &provider, const <a class="el" href="classWt_1_1WString.html">WString</a> &identity)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Adds (or modifies) a user's identity. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#aac2560c6dc061f48f57ca21064775937">setPassword</a> (const <a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> &password) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets a password. <a href="#aac2560c6dc061f48f57ca21064775937"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a80dd59916eb3a6b4d76c088e6411cf5a">password</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the password. <a href="#a80dd59916eb3a6b4d76c088e6411cf5a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a2acef28e6abc6cf751848007bc3ce5af">setEmail</a> (const std::string &address) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the email address. <a href="#a2acef28e6abc6cf751848007bc3ce5af"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a0685d2c906fb07f1ccc8f8ffee00a5fb">email</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the email address. <a href="#a0685d2c906fb07f1ccc8f8ffee00a5fb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a968a002d1d51ae43eddc8bda692e7742">setUnverifiedEmail</a> (const std::string &address) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the unverified email address. <a href="#a968a002d1d51ae43eddc8bda692e7742"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a2fb5b97b81456622f94371e8404d914c">unverifiedEmail</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the unverified email address. <a href="#a2fb5b97b81456622f94371e8404d914c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a25cc981dabd643012eaa9e18bf6d4d57">status</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the account status. <a href="#a25cc981dabd643012eaa9e18bf6d4d57"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a7c60b01acabbeefce47c1f39bb125574">emailToken</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the email token. <a href="#a7c60b01acabbeefce47c1f39bb125574"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">EmailTokenRole</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a6f1f1c0992e9d774e76644833d279baf">emailTokenRole</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the email token role. <a href="#a6f1f1c0992e9d774e76644833d279baf"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a7ca9f5de82c1fad131d727f03f5046e7">setEmailToken</a> (const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &token, <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">EmailTokenRole</a> role) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets an email token. <a href="#a7ca9f5de82c1fad131d727f03f5046e7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#afe130b1e7c7260db015a4a475420d6dd">clearEmailToken</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clears the email token. <a href="#afe130b1e7c7260db015a4a475420d6dd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a7f93bf5899cd863ddd0745ee98fc191d">addAuthToken</a> (const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> &token) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Adds an authentication token. <a href="#a7f93bf5899cd863ddd0745ee98fc191d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#abfafabb7bbae1260b5e3629966640015">removeAuthToken</a> (const std::string &hash) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Removes an authentication token. <a href="#abfafabb7bbae1260b5e3629966640015"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a651b47a5d61224168b5daf1ef1ab0a9b">setAuthenticated</a> (bool success) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Logs the result of an authentication attempt. <a href="#a651b47a5d61224168b5daf1ef1ab0a9b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#a145fd658578b6442926293cec0b94208">failedLoginAttempts</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of consecutive unsuccessful login attempts. <a href="#a145fd658578b6442926293cec0b94208"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classWt_1_1WDateTime.html">WDateTime</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html#ab4c257007e08a93d0c1ad17daeacb2e1">lastLoginAttempt</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the last login attempt. <a href="#ab4c257007e08a93d0c1ad17daeacb2e1"></a><br/></td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>A user. </p> <p>This class represents a user. It is a value class that stores only the user id and a reference to an <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a> to access its properties.</p> <p>An object can point to a valid user, or be invalid. Invalid users are typically used as return value for database queries which did not match with an existing user.</p> <p>Not all methods are valid or applicable to your authentication system. See <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a> for a discussion.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a> </dd></dl> </div><hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a9156dfab4821e49aa7e109f3f1a2674b"></a><!-- doxytag: member="Wt::Auth::User::EmailTokenRole" ref="a9156dfab4821e49aa7e109f3f1a2674b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">Wt::Auth::User::EmailTokenRole</a></td> </tr> </table> </div> <div class="memdoc"> <p>Enumeration for an email token stored for the user. </p> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a9156dfab4821e49aa7e109f3f1a2674ba17d35cc3b85d25c5d3fbfccc8068752b"></a><!-- doxytag: member="VerifyEmail" ref="a9156dfab4821e49aa7e109f3f1a2674ba17d35cc3b85d25c5d3fbfccc8068752b" args="" -->VerifyEmail</em> </td><td> <p><a class="el" href="classWt_1_1Auth_1_1Token.html" title="An authentication token hash.">Token</a> is used to verify his email address. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a9156dfab4821e49aa7e109f3f1a2674ba0261f8dbe3766d885a2be9d7619c85d0"></a><!-- doxytag: member="LostPassword" ref="a9156dfab4821e49aa7e109f3f1a2674ba0261f8dbe3766d885a2be9d7619c85d0" args="" -->LostPassword</em> </td><td> <p><a class="el" href="classWt_1_1Auth_1_1Token.html" title="An authentication token hash.">Token</a> is used to allow the user to enter a new password. </p> </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ac8a61657a320eef6ae6e2c394bdd4437"></a><!-- doxytag: member="Wt::Auth::User::Status" ref="ac8a61657a320eef6ae6e2c394bdd4437" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">Wt::Auth::User::Status</a></td> </tr> </table> </div> <div class="memdoc"> <p>Enumeration for a user's account status. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a25cc981dabd643012eaa9e18bf6d4d57" title="Returns the account status.">status()</a> </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="ac8a61657a320eef6ae6e2c394bdd4437a35904fc75f2d7a6dd52f952487603a1d"></a><!-- doxytag: member="Disabled" ref="ac8a61657a320eef6ae6e2c394bdd4437a35904fc75f2d7a6dd52f952487603a1d" args="" -->Disabled</em> </td><td> <p>Successfully identified but not allowed to log in. </p> </td></tr> <tr><td valign="top"><em><a class="anchor" id="ac8a61657a320eef6ae6e2c394bdd4437a4bdc87727a5f54db977b9e192f05e689"></a><!-- doxytag: member="Normal" ref="ac8a61657a320eef6ae6e2c394bdd4437a4bdc87727a5f54db977b9e192f05e689" args="" -->Normal</em> </td><td> <p>Normal status. </p> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a2319756742238e5f4809d754e2fc735b"></a><!-- doxytag: member="Wt::Auth::User::User" ref="a2319756742238e5f4809d754e2fc735b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Wt::Auth::User::User </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Default constructor. </p> <p>Creates an invalid user.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a933b6fc5683f4ee3f2c414bcb2440202" title="Returns whether the user is valid.">isValid()</a> </dd></dl> </div> </div> <a class="anchor" id="a2bd7e605d6bac3210076a260fab24d4d"></a><!-- doxytag: member="Wt::Auth::User::User" ref="a2bd7e605d6bac3210076a260fab24d4d" args="(const std::string &id, const AbstractUserDatabase &database)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Wt::Auth::User::User </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a> & </td> <td class="paramname"><em>database</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor. </p> <p>Creates a user with id <code>id</code>, and whose information is stored in the <code>database</code>. </p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a7f93bf5899cd863ddd0745ee98fc191d"></a><!-- doxytag: member="Wt::Auth::User::addAuthToken" ref="a7f93bf5899cd863ddd0745ee98fc191d" args="(const Token &token) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Auth::User::addAuthToken </td> <td>(</td> <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> & </td> <td class="paramname"><em>token</em></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Adds an authentication token. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#aa9e6675aad111e35b2725ced17208211" title="Adds an authentication token to a user.">AbstractUserDatabase::addAuthToken()</a> </dd></dl> </div> </div> <a class="anchor" id="afe130b1e7c7260db015a4a475420d6dd"></a><!-- doxytag: member="Wt::Auth::User::clearEmailToken" ref="afe130b1e7c7260db015a4a475420d6dd" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Auth::User::clearEmailToken </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Clears the email token. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a7ca9f5de82c1fad131d727f03f5046e7" title="Sets an email token.">setEmailToken()</a> </dd></dl> </div> </div> <a class="anchor" id="aafdb7f7f04974280d0c2b3e30528a1f8"></a><!-- doxytag: member="Wt::Auth::User::database" ref="aafdb7f7f04974280d0c2b3e30528a1f8" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">AbstractUserDatabase</a>* Wt::Auth::User::database </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the user database. </p> <p>This returns the user database passed in the constructor, or 0 if the user is invalid, and was constructed using the default constructor. </p> </div> </div> <a class="anchor" id="a0685d2c906fb07f1ccc8f8ffee00a5fb"></a><!-- doxytag: member="Wt::Auth::User::email" ref="a0685d2c906fb07f1ccc8f8ffee00a5fb" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::string Wt::Auth::User::email </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the email address. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a15fa807c21115be032626a4a4b661015" title="Returns a user's email address.">AbstractUserDatabase::email()</a> </dd></dl> </div> </div> <a class="anchor" id="a7c60b01acabbeefce47c1f39bb125574"></a><!-- doxytag: member="Wt::Auth::User::emailToken" ref="a7c60b01acabbeefce47c1f39bb125574" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> Wt::Auth::User::emailToken </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the email token. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#af97442ab53528b3609a9e102bf4ec149" title="Returns an email token.">AbstractUserDatabase::emailToken()</a> </dd></dl> </div> </div> <a class="anchor" id="a6f1f1c0992e9d774e76644833d279baf"></a><!-- doxytag: member="Wt::Auth::User::emailTokenRole" ref="a6f1f1c0992e9d774e76644833d279baf" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classWt_1_1Auth_1_1User.html#a9156dfab4821e49aa7e109f3f1a2674b">User::EmailTokenRole</a> Wt::Auth::User::emailTokenRole </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the email token role. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#ad92251a0fe300577a4227f3ffbe01349" title="Returns the role of the current email token.">AbstractUserDatabase::emailTokenRole()</a> </dd></dl> </div> </div> <a class="anchor" id="a145fd658578b6442926293cec0b94208"></a><!-- doxytag: member="Wt::Auth::User::failedLoginAttempts" ref="a145fd658578b6442926293cec0b94208" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int Wt::Auth::User::failedLoginAttempts </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the number of consecutive unsuccessful login attempts. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a651b47a5d61224168b5daf1ef1ab0a9b" title="Logs the result of an authentication attempt.">setAuthenticated()</a> </dd></dl> </div> </div> <a class="anchor" id="acdacd8abd3702d9a8e76c75b64c90c9d"></a><!-- doxytag: member="Wt::Auth::User::id" ref="acdacd8abd3702d9a8e76c75b64c90c9d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const std::string& Wt::Auth::User::id </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the user id. </p> <p>This returns the id that uniquely identifies the user, and acts as a "primary key" to obtain other information for the user in the database.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a> </dd></dl> </div> </div> <a class="anchor" id="a933b6fc5683f4ee3f2c414bcb2440202"></a><!-- doxytag: member="Wt::Auth::User::isValid" ref="a933b6fc5683f4ee3f2c414bcb2440202" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Wt::Auth::User::isValid </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns whether the user is valid. </p> <p>A invalid user is a sentinel value returned by methods that query the database but could not identify a matching user. </p> </div> </div> <a class="anchor" id="ab4c257007e08a93d0c1ad17daeacb2e1"></a><!-- doxytag: member="Wt::Auth::User::lastLoginAttempt" ref="ab4c257007e08a93d0c1ad17daeacb2e1" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classWt_1_1WDateTime.html">WDateTime</a> Wt::Auth::User::lastLoginAttempt </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the last login attempt. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a651b47a5d61224168b5daf1ef1ab0a9b" title="Logs the result of an authentication attempt.">setAuthenticated()</a> </dd></dl> </div> </div> <a class="anchor" id="a8628e4b9a6e39a44349ab7a773dc0e6c"></a><!-- doxytag: member="Wt::Auth::User::operator!=" ref="a8628e4b9a6e39a44349ab7a773dc0e6c" args="(const User &other) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Wt::Auth::User::operator!= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> & </td> <td class="paramname"><em>other</em></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Comparison operator. </p> <dl class="see"><dt><b>See also:</b></dt><dd>operator== </dd></dl> </div> </div> <a class="anchor" id="ab1387f9ab708ef08a5228cf60cb0428c"></a><!-- doxytag: member="Wt::Auth::User::operator==" ref="ab1387f9ab708ef08a5228cf60cb0428c" args="(const User &other) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Wt::Auth::User::operator== </td> <td>(</td> <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1User.html">User</a> & </td> <td class="paramname"><em>other</em></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Comparison operator. </p> <p>Two users are equal if they have the same identity and the same database. </p> </div> </div> <a class="anchor" id="a80dd59916eb3a6b4d76c088e6411cf5a"></a><!-- doxytag: member="Wt::Auth::User::password" ref="a80dd59916eb3a6b4d76c088e6411cf5a" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> Wt::Auth::User::password </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the password. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#abdea1a684e09897d33e2d6ed4ce27ff8" title="Returns a user password.">AbstractUserDatabase::password()</a> </dd></dl> </div> </div> <a class="anchor" id="abfafabb7bbae1260b5e3629966640015"></a><!-- doxytag: member="Wt::Auth::User::removeAuthToken" ref="abfafabb7bbae1260b5e3629966640015" args="(const std::string &hash) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Auth::User::removeAuthToken </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>hash</em></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Removes an authentication token. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#acfe2c37b3ecaf468cb9663a2cd83a980" title="Deletes an authentication token.">AbstractUserDatabase::removeAuthToken()</a> </dd></dl> </div> </div> <a class="anchor" id="a651b47a5d61224168b5daf1ef1ab0a9b"></a><!-- doxytag: member="Wt::Auth::User::setAuthenticated" ref="a651b47a5d61224168b5daf1ef1ab0a9b" args="(bool success) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Auth::User::setAuthenticated </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"><em>success</em></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Logs the result of an authentication attempt. </p> <p>This changes the number of failed login attempts, and stores the current date as the last login attempt time.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1User.html#a145fd658578b6442926293cec0b94208" title="Returns the number of consecutive unsuccessful login attempts.">failedLoginAttempts()</a>, <a class="el" href="classWt_1_1Auth_1_1User.html#ab4c257007e08a93d0c1ad17daeacb2e1" title="Returns the last login attempt.">lastLoginAttempt()</a> </dd></dl> </div> </div> <a class="anchor" id="a2acef28e6abc6cf751848007bc3ce5af"></a><!-- doxytag: member="Wt::Auth::User::setEmail" ref="a2acef28e6abc6cf751848007bc3ce5af" args="(const std::string &address) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Auth::User::setEmail </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>address</em></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Sets the email address. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a9f24e4a83a20e24dd8ac64558db51559" title="Sets a user's email address.">AbstractUserDatabase::setEmail()</a> </dd></dl> </div> </div> <a class="anchor" id="a7ca9f5de82c1fad131d727f03f5046e7"></a><!-- doxytag: member="Wt::Auth::User::setEmailToken" ref="a7ca9f5de82c1fad131d727f03f5046e7" args="(const Token &token, EmailTokenRole role) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Auth::User::setEmailToken </td> <td>(</td> <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1Token.html">Token</a> & </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">EmailTokenRole</a> </td> <td class="paramname"><em>role</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Sets an email token. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a3f12058159d7e2ea45ebc2e72b568942" title="Sets a new email token for a user.">AbstractUserDatabase::setEmailToken()</a> </dd></dl> </div> </div> <a class="anchor" id="aac2560c6dc061f48f57ca21064775937"></a><!-- doxytag: member="Wt::Auth::User::setPassword" ref="aac2560c6dc061f48f57ca21064775937" args="(const PasswordHash &password) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Auth::User::setPassword </td> <td>(</td> <td class="paramtype">const <a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">PasswordHash</a> & </td> <td class="paramname"><em>password</em></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Sets a password. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a489310f977a7c22c7b29ec89fba297cc" title="Sets a new user password.">AbstractUserDatabase::setPassword()</a> </dd></dl> </div> </div> <a class="anchor" id="a968a002d1d51ae43eddc8bda692e7742"></a><!-- doxytag: member="Wt::Auth::User::setUnverifiedEmail" ref="a968a002d1d51ae43eddc8bda692e7742" args="(const std::string &address) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Wt::Auth::User::setUnverifiedEmail </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>address</em></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Sets the unverified email address. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#aa3709b846d8949b6a411c8494496aa55" title="Sets a user's unverified email address.">AbstractUserDatabase::setUnverifiedEmail()</a> </dd></dl> </div> </div> <a class="anchor" id="a25cc981dabd643012eaa9e18bf6d4d57"></a><!-- doxytag: member="Wt::Auth::User::status" ref="a25cc981dabd643012eaa9e18bf6d4d57" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437">User::Status</a> Wt::Auth::User::status </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the account status. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a64fba754661708d4c25219e46c5fe1b6" title="Returns the status for a user.">AbstractUserDatabase::status()</a> </dd></dl> </div> </div> <a class="anchor" id="a2fb5b97b81456622f94371e8404d914c"></a><!-- doxytag: member="Wt::Auth::User::unverifiedEmail" ref="a2fb5b97b81456622f94371e8404d914c" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::string Wt::Auth::User::unverifiedEmail </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the unverified email address. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html#a041239ea5a0ef0a0907c045abf29f687" title="Returns a user's unverified email address.">AbstractUserDatabase::unverifiedEmail()</a> </dd></dl> </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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </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 <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>