Wt  3.3.3
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Types | Public Member Functions | Static Public Attributes | List of all members
Wt::Auth::RegistrationModel Class Reference

Model for implementing a registration view. More...

#include <Wt/Auth/RegistrationModel>

Inheritance diagram for Wt::Auth::RegistrationModel:
Inheritance graph
[legend]

Public Types

enum  EmailPolicy { EmailDisabled, EmailOptional, EmailMandatory }
 Enumeration for an email policy. More...
 
enum  IdentityConfirmationMethod { ConfirmWithPassword, ConfirmWithEmail, ConfirmationNotPossible }
 Method for confirming to be an existing user. More...
 

Public Member Functions

 RegistrationModel (const AuthService &baseAuth, AbstractUserDatabase &users, Login &login, WObject *parent=0)
 Constructor. More...
 
virtual void reset ()
 Resets the model. More...
 
Loginlogin ()
 Returns the login object.
 
void setMinLoginNameLength (int chars)
 Configures a minimum length for a login name. More...
 
int minLoginNameLength () const
 Returns the minimum length for a login name. More...
 
void setEmailPolicy (EmailPolicy policy)
 Configures whether an email address needs to be entered. More...
 
EmailPolicy emailPolicy () const
 Returns the email policy. More...
 
virtual bool registerIdentified (const Identity &identity)
 Register a user authenticated by an identity provider. More...
 
User existingUser () const
 Returns the existing user that needs to be confirmed. More...
 
virtual IdentityConfirmationMethod confirmIsExistingUser () const
 Returns the method to be used to confirm to be an existing user. More...
 
virtual void existingUserConfirmed ()
 Confirms that the user is indeed an existing user. More...
 
virtual WString validateLoginName (const WString &userName) const
 Validates the login name. More...
 
virtual void checkUserExists (const WString &userName)
 Verifies that a user with that name does not yet exist. More...
 
virtual User doRegister ()
 Performs the registration process.
 
virtual bool isVisible (Field field) const
 Returns whether a field is visible. More...
 
virtual bool isReadOnly (Field field) const
 Returns whether a field is read only. More...
 
virtual bool validateField (Field field)
 Validates a field. More...
 
virtual bool isConfirmUserButtonVisible () const
 Returns whether an existing user needs to be confirmed. More...
 
virtual bool isFederatedLoginVisible () const
 Returns whether federated login options can be shown. More...
 
- Public Member Functions inherited from Wt::Auth::FormBaseModel
 FormBaseModel (const AuthService &baseAuth, AbstractUserDatabase &users, WObject *parent=0)
 Constructor.
 
const AuthServicebaseAuth () const
 Returns the authentication base service. More...
 
AbstractUserDatabaseusers ()
 Returns the user database.
 
virtual void addPasswordAuth (const AbstractPasswordService *auth)
 Adds a password authentication service. More...
 
const AbstractPasswordServicepasswordAuth () const
 Returns the password authentication service. More...
 
virtual void addOAuth (const OAuthService *auth)
 Adds an OAuth authentication service provider. More...
 
virtual void addOAuth (const std::vector< const OAuthService * > &auth)
 Adds a list of OAuth authentication service providers. More...
 
std::vector< const OAuthService * > oAuth () const
 Returns the list of OAuth authentication service providers. More...
 
virtual WString label (Field field) const
 Returns a field label. More...
 
- Public Member Functions inherited from Wt::WFormModel
 WFormModel (WObject *parent=0)
 Constructor. More...
 
void addField (Field field, const WString &info=WString::Empty)
 Adds a field. More...
 
void removeField (Field field)
 Removes a field. More...
 
std::vector< Fieldfields () const
 Returns the fields. More...
 
virtual bool validate ()
 Validates the current input. More...
 
bool valid () const
 Returns the current overall validation state. More...
 
void setVisible (Field field, bool visible)
 Sets whether a field is visible. More...
 
void setReadOnly (Field field, bool readOnly)
 Sets whether a field is read-only. More...
 
virtual void setValue (Field field, const boost::any &value)
 Sets the field value. More...
 
virtual const boost::any & value (Field field) const
 Returns the field value. More...
 
virtual WString valueText (Field field) const
 Returns the field value text. More...
 
virtual void setValidator (Field field, WValidator *validator)
 Sets a validator. More...
 
virtual WValidatorvalidator (Field field) const
 Returns a validator. More...
 
virtual void setValidated (Field field, bool validated)
 Sets whether a field has been validated. More...
 
virtual bool isValidated (Field field) const
 Returns whether the field has been validated yet. More...
 
const WValidator::Resultvalidation (Field field) const
 Returns the result of a validation. More...
 
virtual void setValidation (Field field, const WValidator::Result &result)
 Sets the validation result for a field. More...
 
- Public Member Functions inherited from Wt::WObject
 WObject (WObject *parent=0)
 Create a WObject with a given parent object. More...
 
virtual ~WObject ()
 Destructor. More...
 
virtual const std::string id () const
 Returns the (unique) identifier for this object. More...
 
virtual void setObjectName (const std::string &name)
 Sets an object name. More...
 
virtual std::string objectName () const
 Returns the object name. More...
 
void resetLearnedSlots ()
 Resets learned stateless slot implementations. More...
 
template<class T >
void resetLearnedSlot (void(T::*method)())
 Resets a learned stateless slot implementation. More...
 
template<class T >
WStatelessSlot * implementStateless (void(T::*method)())
 Declares a slot to be stateless and learn client-side behaviour on first invocation. More...
 
template<class T >
WStatelessSlot * implementStateless (void(T::*method)(), void(T::*undoMethod)())
 Declares a slot to be stateless and learn client-side behaviour in advance. More...
 
template<class T >
WStatelessSlot * implementJavaScript (void(T::*method)(), const std::string &jsCode)
 Provides a JavaScript implementation for a method. More...
 
void addChild (WObject *child)
 Adds a child object. More...
 
virtual void removeChild (WObject *child)
 Removes a child object. More...
 
const std::vector< WObject * > & children () const
 Returns the children.
 
WObjectparent () const
 Returns the parent object.
 

Static Public Attributes

static const Field ChoosePasswordField = "choose-password"
 Choose Password field.
 
static const Field RepeatPasswordField = "repeat-password"
 Repeat password field.
 
static const Field EmailField = "email"
 Email field (if login name is not email)
 
- Static Public Attributes inherited from Wt::Auth::FormBaseModel
static const Field LoginNameField = "user-name"
 Login name field.
 

Additional Inherited Members

- Protected Member Functions inherited from Wt::WObject
virtual WStatelessSlot * getStateless (Method method)
 On-demand stateless slot implementation. More...
 
- Static Protected Member Functions inherited from Wt::WObject
static WObjectsender ()
 Returns the sender of the current slot call. More...
 

Detailed Description

Model for implementing a registration view.

This model implements the logic for the registration of a new user. It can deal with traditional username/password registration, or registration of pre-identified users using federated login.

The model exposes four fields:

The largest complexity is in the handling of third party identity providers, which is initiated with a call to registerIdentified().

When a user is re-identified with the same identity, then the model may require that the (original) user confirms this new identity. The model indicates that this button should be made visible with isConfirmUserButtonVisible(), the action to take is determined by confirmIsExistingUser(), and existingUserConfirmed() ends this process by merging the new identity into the existing user.

See Also
RegistrationWidget

Member Enumeration Documentation

Enumeration for an email policy.

Enumerator
EmailDisabled 

The email address is not asked for.

EmailOptional 

A user may optionally provide an email address.

EmailMandatory 

A user must provide an email address.

Method for confirming to be an existing user.

Enumerator
ConfirmWithPassword 

Confirm using a password prompt.

ConfirmWithEmail 

Confirm by using an email procedure.

ConfirmationNotPossible 

Confirmation is not possible.

Constructor & Destructor Documentation

Wt::Auth::RegistrationModel::RegistrationModel ( const AuthService baseAuth,
AbstractUserDatabase users,
Login login,
WObject parent = 0 
)

Constructor.

Creates a new registration model, using a basic authentication service and user database.

The login object is used to indicate that an existing user was re-identified, and thus the registration process may be aborted.

Member Function Documentation

void Wt::Auth::RegistrationModel::checkUserExists ( const WString userName)
virtual

Verifies that a user with that name does not yet exist.

If a user with that name already exists, it may in fact be the same user that is trying to register again (perhaps using a different identification method). If possible, we allow the user to confirm his identity.

RegistrationModel::IdentityConfirmationMethod Wt::Auth::RegistrationModel::confirmIsExistingUser ( ) const
virtual

Returns the method to be used to confirm to be an existing user.

When the ConfirmExisting field is visible, this returns an appropriate method to use to let the user confirm that he is indeed the identified existing user.

The outcome of this method (if it is an online method, like a password prompt), if successful, should be indicated using existingUserConfirmed().

See Also
existingUserConfirmed()
EmailPolicy Wt::Auth::RegistrationModel::emailPolicy ( ) const

Returns the email policy.

See Also
setEmailPolicy()
User Wt::Auth::RegistrationModel::existingUser ( ) const

Returns the existing user that needs to be confirmed.

When a user wishes to register with an identity that corresponds to an existing user, he may be allowd to confirm that he is in fact this existing user.

See Also
confirmIsExistingUser()
void Wt::Auth::RegistrationModel::existingUserConfirmed ( )
virtual

Confirms that the user is indeed an existing user.

The new identity is added to this existing user (if applicable), and the user is logged in.

bool Wt::Auth::RegistrationModel::isConfirmUserButtonVisible ( ) const
virtual

Returns whether an existing user needs to be confirmed.

This returns whether the user is being identified as an existing user and he can confirm that he is in fact the same user.

bool Wt::Auth::RegistrationModel::isFederatedLoginVisible ( ) const
virtual

Returns whether federated login options can be shown.

This returns whether fields for federated login (such as OAuth) should be shown. These are typically buttons corresponding to identity providers.

The result of a federated authentication procedure should be indicated to registerIdentified().

bool Wt::Auth::RegistrationModel::isReadOnly ( Field  field) const
virtual

Returns whether a field is read only.

The default implementation returns the value set by setReadOnly()

Reimplemented from Wt::WFormModel.

bool Wt::Auth::RegistrationModel::isVisible ( Field  field) const
virtual

Returns whether a field is visible.

In some cases not all fields of the model need to be shown. This may depend on values input for certain fields, and thus change dynamically. You may specialize this method to indicate that a certain field should be invisible.

The default implementation returns the value set by setVisible().

Reimplemented from Wt::WFormModel.

int Wt::Auth::RegistrationModel::minLoginNameLength ( ) const

Returns the minimum length for a login name.

See Also
setMinLoginNameLength()
bool Wt::Auth::RegistrationModel::registerIdentified ( const Identity identity)
virtual

Register a user authenticated by an identity provider.

Using a 3rd party authentication service such as OAuth, a user may be identified which is not yet registered with the web application.

Then, you may still need to allow the user to complete registration, but because the user already is identified and authenticated, this simplifies the registration form, since fields related to authentication can be dropped.

Returns true if the given identity was already registered, and has been logged in.

void Wt::Auth::RegistrationModel::reset ( )
virtual

Resets the model.

This resets the model to initial values, clearing any entered information (login name, password, pre-identified identity).

Reimplemented from Wt::WFormModel.

void Wt::Auth::RegistrationModel::setEmailPolicy ( EmailPolicy  policy)

Configures whether an email address needs to be entered.

You may specify whether you want the user to enter an email address.

This has no effect when the IdentityPolicy is EmailAddressIdentity.

The default policy is:

  • EmailOptional when email address verification is enabled
  • EmailDisabled otherwise
void Wt::Auth::RegistrationModel::setMinLoginNameLength ( int  chars)

Configures a minimum length for a login name.

The default value is 4.

bool Wt::Auth::RegistrationModel::validateField ( Field  field)
virtual

Validates a field.

The default implementation uses the validator configured for the field to validate the field contents, or if no validator has been configured assumes that the field is valid.

You will typically customize this method for more complex validation cases.

See Also
validate(), validationResult()

Reimplemented from Wt::WFormModel.

WString Wt::Auth::RegistrationModel::validateLoginName ( const WString userName) const
virtual

Validates the login name.

This verifies that the login name is adequate (see also setMinLoginNameLength()).


Generated on Tue May 27 2014 for the C++ Web Toolkit (Wt) by doxygen 1.8.4