Data type UserData
Description:
TYRIOS saves user specific information in a UserData object.
Attention
Please be aware: TYRIOS is an aspect-oriented system and the concrete data structure depends on your system configuration. Especially in case you want to update existing data, please be aware to take all available fields into account or use an update specific API endpoint to avoid data loss.
User modes
TYRIOS supports three different user modes:
- blank users: A blank user is not exactly known to the system. There is neither any contact information nor any other possibility to contact the user. However, there are rules how to handle this user, e.g. which price rules are applied. When a blank user is logging in, the first he needs to do is to provide contact information like his email address, his name, his first name, etc. So a blank user is a perfect possibility to prepare campaigns for.
- guest users: a guest user is known to the system. So we have all required contact information; however, the guest user has not registered himself. There is no password or nickName given. The user cannot log in himself.
- full users: full users are known to the system, and they have provided login credentials. They are able to log in themselves.
Please be aware: a UserData object is finally always a person we can communicate with. A UserData object is typically combined with a customer (CustomerData) or a supplier (SupplierData). These data types are abstract data types.
General data structure
In general, a UserData object has the following data structure:
{
"id": 1, //automaticcally assigned ID
"nickName": "Max.Mustermann", //nickname which is used for login, needs to be unique
"title": "Dr.", //potential title
"preName": "Max", //first name - required
"name": "Mustermann", // last name - required
"company": "repalogic", // company name - optional
"position": "Geschäftsführer", // job position - optional
"department": null, // department - optional
"eMail": "max.mustermann@repalogic.com", //email - optional
"url": null, // url - optional
"birthday": 976316400000, // - birthday - required for normal users
"passwordChangeDate": 1586979317, // - password change date - cannot be changed via API
"registerDate": 1423580132000, // - register date - cannot be changed via API
"lastLoginTime": 1632771865000, // - last login date - cannot be changed via API
"lastIP": 3232235833, // last IP address as long - cannot be changed via API
"lastProvider": "provider.de", // last provider name - cannot be changed via API
"userAuthentication": true, // specified if the user is authenticated by himself
"userAuthenticationCode": "M6qD17p", // code the user needs to enter to authenticate himself
"adminAuthentication": true, // flag if user is authenticated by admin
"autoLoginString": "randomString", // string if the user can login automatically
"Language": null, // array of Language objects
"UserRight": null, // array of user specific rights
"UserGroup": [ // array of assigned user groups
...
],
"kicked": false, // specifies if the user can login
"reloadSettings": false, // specifies if the user must reload his user settings
"guestUser": false, // specifies if the user is a guest user
"tags": [], // array of tags
"profileText": null, // text for the user profile page
"twitterProfile": null, // twitter link
"facebookProfile": null, // facebook link
"xingProfile": null, // xing link
"linkedInProfile": null, // linkedIn link
"profileImage": null, // profile image as MediahelperFile
"salutation": null,
"CustomerData": null, // potentially assigned CustomerData object
"activateRestApi": true, // specifies if the user can use API
"restApiSecret": "not available via JSON",
"bookingAccount": null,
"contactPhone": null,
"contactFax": null,
"uniqueUserHash": "UQBUFDJALK4WXYC", // unique user hash, will be automatically generated if not given, unique, exactly 15 characters, case insensitive
"isBlankUser": false, //blank user
"UserAddressData": null, //UserAddressData array
"UserContactData": null, //UserContactData array
"userSpecificPriceCalculation": "standard",
"individualPriceCalculationRule": null
}