Users

Registered users are a core part of any modern web solution – whether they’re customers, content creators, ecommerce managers, or any of the other type of user account you can think of. In Dynamicweb, a user account generally consists of:

  • A username
  • A password
  • A number of optional fields for storing additional information about the user account – e.g. address details, customer numbers, a profile images, etc.

User accounts can be created in several ways:

  1. From the backend using the built-in tools of the Users area
  2. From frontend using a paragraph app:
    1. The Extranet app is used for direct profile creation/editing
    2. The Shopping Cart app can create users during checkout
    3. The Forms for Editors app can create users when a form is submitted
  3. As a part of an integration setup where users are imported from an external system

Users are typically placed in user groups – which are containers for user accounts and can also be used to set permissions for a specific type of user. A user account can be a member of several groups, in which case any permission conflicts are resolved using the permissions hierarchy.

When a user account is opened in backend the user details view is shown – it consists of:

  1. A toolbar with two tabs of buttons and tools allowing you to do stuff, like switch to the addresses view, open the loyalty points overview for this user, or set a custom editor configuration
  2. A list of fields – standard, generated or custom – associated with this user account
Figure 2.1 The User Details view

The toolbar for users consists of the following tabs:

  • The User tab is the default tab and is used for common operations – the most important are:
  • The Options tab is used for less used operations such as:
    • Changing the user type
    • Toggling backend login for this user – this can also be done at the user group level, which might make more sense as it is easier to control
    • Changing a user from active to inactive or setting a publication period for a user (after which it will automatically become inactive)

A user account must always have a user name and a password (Figure 3.1). Usernames and passwords are typically set during profile creation, and can be changed by users from frontend via the Extranet app in Edit Profile mode.

Figure 3.1 User name & password fields

By default you cannot see the present password of a user account inside the administration – but you can set a new password manually, and this password can be encrypted. If you need to disable these security measures – for instance during testing – you can check Show password if present under Settings > Control Panel > Users.

More advanced password security settings can be enabled/configured under Settings > Control Panel > Users.

If Show password if present is set and a password is encrypted you can send them a recovery mail (Figure 3.2).

Figure 3.2 Sending a recovery email to a user

This action stores a recovery token on the user. In the email setup, select a page with an attached extranet app, and link the user to a sign-in page using RecoveryToken=[token] in the URL to load the password recovery template from the extranet app.

Below the user name and password fields is a long list of fields for storing information about the user. These are explained below – the fields containing simple string values are described with a ’-’.

The personal fields contain personal details about the user:

Field

Value

Notes

Name

-

 

Title

-

 

First name

-

 

Middle name

-

 

Last name

-

 

Email

A valid email address

Use checkmark-icon to validate the formatdomain, and mail server record.

Image

An image

This image can be updated by the user via the extranet app

Email permission

True/false

If this field is false, the standard Dynamicweb Users recipient provider will not allow you to send emails to this user

Consents

Lists consents associated with the user

Consents can be used in conjunction with the email permission field to implement GDPR-compliant procedures

The Address and Phone fields contain information about contacting the user:

Field

Value

Notes

Address

-

 

Address 2

-

 

House number

-

 

Zip code

-

 

City

-

 

State or region

-

Value should be a valid region code - e.g. CA and not California

Billing/Shipping country

Select a country

The default payment & shipping methods for the selected country will be used in place of the default country in the website settings

Phone

-

 

Phone (private)

-

 

Mobile phone

-

 

Fax

-

 

The Ecommerce fields contain data related to Ecommerce:

Field

Value

Notes

Customer number

-

Typically used to link users from the same company with each other, for use in e.g. the price matrix or a live integration.

External id

-

Typically used for linking the user with an external service, e.g. a CRM system, as a part of a user integration.

Currency

Select a currency

The selected currency overrules the default set in the website Ecommerce settings. Takes effect after logout & login.

Stock location

Select a stock location

The selected stock location overrules the default set in the website Ecommerce settings. Takes effect after logout & login.

Shop id

Enter a valid shop ID

Only present when the checkbox ’Include shop id in extranet login’ is checked in the Ecommerce settings. This checkbox is used to differentiate two otherwise identical users when they log into frontend.

The Work fields are used to store work-related information about the user.

Field

Value

Notes

Company

-

 

Department

-

 

Job title

-

 

Phone (business)

-

 

VAT reg number

A valid VAT number for the user’s country

A VAT reg number is an id used for tax purposes – in denmark this is called a CVR number, in Germany a Ust-ldNr, in the UK a VAT Reg No, and so on.

Reverse charge for VAT true/false Enables reverse VAT charges for this user

The Geolocation & Start Page fields can be used to store a geolocation for a user.

Field

Value

Notes

GeoLocationLat

Latitude coordinates

Click the ’Show location on map’ button to manually select and save a set of coordinates.

 

The ’Get location from API’ button attempts to retrieve coordinates based on address information on the user.

GeoLocationLng

Longitude coordinates

Click the ’Show location on map’ button to manually select and save a set of coordinates.

 

The ’Get location from API’ button attempts to retrieve coordinates based on address information on the user.

GeoLocationIsCustom

True/false

This setting indicates whether this is a custom location (set via ’show location on map’) or not (set via ’Get location from API’).

Image

An image file

This image can be used to replace the standard maps marker when rendering geolocations on a map (this is automatic if the Maps app is used).

Start Page

Select a custom start page for this user

 

On some solutions, various System Fields are also present. These fields are generated by the system when various parts of the system are in use, e.g. certain tax providers for the US market. You may also have access to one or more custom user fields – these fields are typically used to store data from an external system.

Below these, a Groups selector allows you to manage group membership for this user – you can see which groups the user is a member of, and add or remove the user from user groups.

If the solution uses live integration an option for disabling live prices for this particular user is also present. This field is typically not managed via the backend, but set and removed from a remote system as a part of the integration.

Finally, you can see audit information related to the user:

  • Created on
  • Updated on
  • Created by
  • Updated by
  • Email permission updated on
  • Last login on

In the footer, you can see the User id.

In addition to the standard user fields described in the section above you can create custom user fields – these are typically used to hold information from external systems. For inatsance, this website uses a set of custom fields for storing information about which certification a user has taken.

Custom user fields are created from Settings > Control Panel > Users (Figure 5.1).

Figure 5.1 The custom fields settings allow you to view and create custom (address) fields

To do so, click Edit custom fields in the list of settings to open the custom fields view (Figure 5.2).

Figure 5.2 Custom fields

From here, you can add new custom fields by specifying a name, a system name and a type.

database

These are the tables relevant for Users and User groups in the Dynamicweb database:

AccessUser

Contains all the users and groups in Dynamicweb

Field name Data type Length
AccessUserId int 4
AccessUserParentId int 4
AccessUserUserName nvarchar 255
AccessUserPassword nvarchar 255
AccessUserName nvarchar 255
AccessUserDepartment nvarchar 255
AccessUserEmail nvarchar 255
AccessUserPhone nvarchar 255
AccessUserFax nvarchar 255
AccessUserGroups nvarchar 255
AccessUserType int 4
AccessUserValidFrom datetime 8
AccessUserValidTo datetime 8
AccessUserPages nvarchar 255
AccessUserAreas nvarchar 255
AccessUserSettings nvarchar Max
AccessUserModules nvarchar Max
AccessUserInformation nvarchar Max
AccessUserMyFolder nvarchar 255
AccessUserAddress nvarchar 255
AccessUserAddress2 nvarchar 255
AccessUserZip nvarchar 255
AccessUserCity nvarchar 255
AccessUserCountry nvarchar 255
AccessUserJobTitle nvarchar 255
AccessUserCompany nvarchar 255
AccessUserPhonePriv nvarchar 255
AccessUserMobile nvarchar 255
AccessUserCustomerNumber nvarchar 255
AccessUserRedirectOnLogin nvarchar 255
AccessUserCurrencyCharacter nvarchar 3
AccessUserRead bit 1
AccessUserAdsiMap nvarchar 255
AccessUserPasswordDate datetime 8
AccessUserLastName nvarchar 255
AccessUserMiddleName nvarchar 255
AccessUserActive bit 1
AccessUserImage nvarchar 255
AccessUserBusiness nvarchar 255
AccessUserInitials nvarchar 255
AccessUserComment nvarchar Max
AccessUserLevel int 4
AccessUserInheritAddress bit 1
AccessUserWeb nvarchar 255
AccessUserSort int 4
AccessUserStatus int 4
AccessUserStatusBegin datetime 8
AccessUserStatusEnd datetime 8
AccessUserStatusComment nvarchar 255
AccessUserEditorConfigurationId int 4
AccessUserHideStat bit 1
AccessUserCartId nvarchar 50
AccessUserAllowBackend bit 1
AccessUserApprovalKey nvarchar 50
AccessUserShopId nvarchar 50
AccessUserExternalId nvarchar 250
AccessUserSortXML nvarchar Max
AccessUserGeoLocationLat float 8
AccessUserGeoLocationLng float 8
AccessUserGeoLocationIsCustom bit 1
AccessUserGeoLocationImage nvarchar 255
AccessUserGeoLocationHash nvarchar 32
AccessUserNewsletterAllowed bit 1
AccessUserCreatedOn datetime 8
AccessUserUpdatedOn datetime 8
AccessUserCreatedBy int 4
AccessUserUpdatedBy int 4
AccessUserEmailPermissionGivenOn datetime 8
AccessUserEmailPermissionUpdatedOn datetime 8
AccessUserState nvarchar 255
AccessUserVatRegNumber nvarchar 20
AccessUserDisableLivePrices bit 1
AccessUserLastLoginOn datetime 8
AccessUserPointBalance float 8
AccessUserAdministratorInGroups nvarchar Max
AccessUserTitle nvarchar 255
AccessUserFirstName nvarchar 255
AccessUserHouseNumber nvarchar 255
AccessUserLastOrderDate datetime 8
AccessUserPasswordRecoveryToken nvarchar 128
AccessUserPasswordRecoveryTokenExpirationTime datetime 8
AccessUserGroupSmartSearch nvarchar 50
AccessUserGroupSmartSearchLastCalculatedTime datetime 8
AccessUserExported datetime 8
AccessUserItemType nvarchar 255
AccessUserItemId nvarchar 255
AccessUserDefaultUserItemType nvarchar 255
AccessUserStockLocationID bigint 8
AccessUserCountryCode nvarchar 2
AccessUserAddressTitle nvarchar 255
AccessUser_VIPContactMail bit 1
AccessUser_ContentMarketingAndEcommerceDeveloperExpire datetime 8
AccessUser_C0Certified bit 1
AccessUser_C0CertifiedExpire datetime 8
AccessUser_C1Certified bit 1
AccessUser_C1CertifiedExpire datetime 8
AccessUser_C3Certified bit 1
AccessUser_C3CertifiedExpire datetime 8
AccessUser_C2Certified bit 1
AccessUser_C2CertifiedExpire datetime 8
AccessUser_C4Certified bit 1
AccessUser_C4CertifiedExpire datetime 8
AccessUser_DWEmployee bit 1
AccessUser_ErpSystem nvarchar Max
AccessUser_EmailAddressValid bit 1
AccessUser_NaceCode nvarchar Max
AccessUser_MVP bit 1
AccessUser_Owner nvarchar Max
AccessUser_ParentCountry nvarchar Max
AccessUser_PamNewsletter bit 1
AccessUser_ParentCategory nvarchar Max
AccessUser_ParentPartnerType nvarchar Max
AccessUser_PrimaryLineOfBusiness nvarchar Max
AccessUser_PartnerAccountNumber nvarchar Max
AccessUserUserAndGroupType nvarchar 255
DefaultPermission int 4
AccessUser_GDPRNewsletterConsent bit 1
AccessUser_GDPRNewsletterConsentTimestamp datetime 8
AccessUser_GDPRNewsletterConsentAcquiredBy nvarchar Max
AccessUser_FinancialInformation bit 1
AccessUser_C5Certified bit 1
AccessUser_C5CertifiedExpire datetime 8
AccessUser_C6Certified bit 1
AccessUser_C6CertifiedExpire datetime 8
AccessUserInformationSent datetime 8
AccessUserReverseChargeForVat bit 1
AccessUserProfileCreatedDate datetime 8

AccessUserSecondaryRelation

Contains AccessUserId of users (AccessUserSecondaryRelationUserID) who can log in on behalf of other users (AccessUserSecondaryRelationSecondaryUserId) (i.e. Impersonate them).

Field name Data type Length
AccessUserSecondaryRelationUserId int 4
AccessUserSecondaryRelationSecondaryUserId int 4
AccessUserSecondaryRelationAutoId int 4

CustomField

Contains definitions of custom fields on users

Field name Data type Length
CustomFieldSystemName nvarchar 50
CustomFieldTableName nvarchar 255
CustomFieldType nvarchar 50
CustomFieldName nvarchar 255
CustomFieldOptions nvarchar Max
CustomFieldSort int 4
CustomFieldAutoId int 4