# System
# User access control
#  Getting started
In this article, you can find information about admin panel user control, which allows to set up after how many days of inactivity the admin panel account will be blocked. Blocked accounts will be unlocked using the built-in unblocking process.
The supervisor will also receive e-mails after the selected amount of days with a list of users that are currently expired.
Table of contents:
1. [ System settings](#bkmrk-system-settings)
2. [ Functionality overview](#bkmrk-functionality-overvi)
---
#  System settings
The functionality can be configured in the
***System > System / Settings > Admin > Expired accounts access control***
 |
*Visualization of the system settings* |
In the Expire accounts access control section we can find the following settings:
- **Functionality Enabled** - Switch that defines if the functionality is enabled or not.
- **Days to expire -** Number of days after which the administrator is considered expired.
- **Self reactivation email domains** - List of email domains that can reactivate the account themselves. Separate with commas. e.g. "example.com,example2.com"
- **Excluded email domains** - List of email domains that wont be expired automatically. Separate with commas. e.g. "example.com,example2.com"
- **Supervisor email recipients** - List of supervisor email addresses to which the admin reactivation request and info mail is sent. Separate with commas. e.g. "supervisor@mail.com,supervisor2@mail.com". Please make sure that an account that has at least super administrator role is set up here, as reactivating the account requires permissions to **Settings > Admins / list > Edit**
- **Info mail interval** - Number of days after which the info mail is sent to the administrator.
---
#  Functionality overview
After the selected number of days of inactivity specified in the system settings users account "is active?" parameter switches from **ON** to **EXPIRED**. When the selected user tries to log in when their status is set to Expired they will receive one of twe two notifications:
1\. "Your account has expired after X days of inactivity. An e-mail with a request to re-activate the account has been sent to the supervisor" - This message is visible when the selected domain is not in the self-activation list, and the supervisor has to re-active the account manually.
2\. "Your account has expiired after X days of inactiivty. An e-mail has been sent you to with a link to re-active the account" - this message is visible when the selected e-mail domain is in the **Self reactivation email domains** field in the system / settings. User will be able to re-active the account themselves.
 |
*Visualization of the error message when the account is expired* |
The user or the supervisor will receive the following e-mail. This e-mail contains the expired user e-mail address, after how many days it was blocked and when was the last activity of the user. It also contains a button that will allow to re-active the user. Self re-activation will just re-active the account, while supervisor e-mail redirects to the users admin panel profile.
 **Remember**Supervisor should be a person who has at least Super Administrator permissions in the admin panel in order to access **System > Admins / list > Edit**.

|
*Visualization of the example re-activation e-mail.*
|
When the supervisor gets redirected to the users profile in the admin panel they will notice that their **is active?** field is set to **Expired**. In order to unblock the user the value has to be changed from **Expired** to **On**.

|
*Visualization of the user profile in the admin panel* |
# Synchronization
#  Getting started
With the synchronization process, you are able to merge the contents of one environment with another without the need to make manual changes. The content you want to synchronize can be set at the process configuration phase, and the process itself is automatic.
 **Remember**Synchronization is the ongoing process of synchronizing data between two environments, and updating changes automatically between them to maintain consistency within them. It is a perfect way to prepare for example campaign on TEST environment and then synchronize all the changes in tho PROD environment at once.
 **Note**Synchronization process works only between PROD and TEST enviroments, and can be activated only from PROD environment. Data can only be synchronized one way at the time, for example: PROD > TEST, or TEST > PROD.
Not all data is synchronized between the environments. Below you will find data and settings that are **not** synchronized:
- System settings (except mobile app JSONs described below)
- Translations
- Promotion codes
- Campaigns
- Titles
- Users
- Payment types
- Delivery types
- SEO settings
- Orders
- Reviews
- Beauty Advisor module
Synchronization module is located in:
***System > Synchronization***
 |
*Visualization of the synchronization tab* |
Table of contents:
1. [ Description of the synchronization process](#bkmrk-description-of-the-s-1)
2. [Changes review - description of the view and possible actions](#bkmrk-changes-review---des)
3. [Result of a synchronization](#bkmrk-result-of-a-synchron)
---
#  Description of the synchronization process
In the synchronization module, you can find many synchronization options described below
 |
*Visualization of the synchronization tab* |
**(1)** - Select the synchronization direction (PROD <--> TEST).
**(2)** - Choose whether you want to synchronize **all records** or **only new ones**.
- **Synchronize all records** - the application will take all records available in the database into account, including also modification of the current records in the environment from which the synchronization process is performed.
- **Synchronize only new records** - The application will only take newly created records into account in the environment from which the synchronization is performed.
 **Example**1. In the TEST environment, you have created a new CMS page.
2\. On the PROD environment, you have changed the graphics in the currently existing Slider
3\. You use the synchronize function in the TEST > PROD direction
**The result:**
The application will only move a new CMS page to the production environment (point 1).
 **Warning** If you create a new CMS page on the TEST and PROD environments at the same time, and then synchronize the environments, there is a risk (if the status of the environments is not identical) that the synchronized pages will overwrite the currently existing pages on the environment in which the synchronization is performed because synchronization system is using the internal element IDs to fit the data together, and if the IDs are different that will result in conflict.
**(3)** - button enabling selection of all records from section **(4)**
**(4)** - switches defining which application modules should be involved in the synchronization process. After selecting the **Gallery folders** switch, and specifying the synchronization process direction, you will be able to choose which folders from the gallery should take part in the synchronization process. **System config** option allows to synchronize mobile app JSONs located in **System > System / Settings > Integrations > Mobile app**.
 **Remember**Selecting mobile app synchronization options forces to additionally synchronize **Gallery folders**, as mobile app has mandatory images. Please remember to synchronize gallery folders that are used for a mobile app graphics (in most cases it's a **mobile\_app** folder).
**(5)** - button initiating the synchronization process.
After selecting **Start comparing environments** **(5)** button, the process of environment comparison will start, and you’ll receive the following statement.
 |
*Visualization of the e-mail message* |
---
#  Changes review - description of the view and possible actions
After the system compares the enviroments you will see all changes and conflicts that will occur. You can find description of all changes below
 |
*Visualization of the changes review tab* |
**(1)** - statement announcing in which direction the synchronization will be performed
**(2)** - tabs with the possibility to select the records you want to synchronize. In the above screenshot, an example of **New records** is attached. The selected record will be synchronized, an unmarked record will not be synchronized.
- **Conflicts** - list of conflicts that occurred during synchronization. Conflicts can happen when synchronized data doesn't match internal ID. In this case, the user will receive a conflict warning with an option to ignore the conflict and overwrite the data. To avoid conflicts, it is recommended to not create same content on both enviroments at the same time, as this is the most common reason of a conflict.
- **New records** - list of new records created on the source environment from which synchronization is performed to the target environment.
- **Modified records** - list of modified records on the environment from which synchronization is performed. It is a list of records that have matching ID between PROD and TEST environment, and by selecting them the synchronization will overwrite the content of the data.
- **Deleted records** - list of records deleted from the environment from which synchronization is performed. It is a list of records that doesn't exist on source environment, because they got deleted, but they still exist on a target enviroments. Same as with other actions, it is being compared using the IDs.
**(3)** - in this section you can schedule the date when the synchronization will be performed and choose the possibility of test import for a verification purposes (changes will not be saved).
 **Warning** After scheduling a synchronization, it is advised to not make any changes to the source and target enviroments until the synchronization is finished or canceled. This may cause unexpected behavior in the synchronization process.
After setting up the settings, select the **Schedule synchronization** button to initiate the synchronization process.
---
#  Result of a synchronization
You can check the result of the synchronization by choosing the **Messages** **(1)** button.
 |
*Visualization of the messages tab* |
While synchronization is still in process, you will see **Synchronization process** message. When you click on the message you will see detailed information:
 |
*Visualization of the synchronization process message tab* |
Synchronization process message will show you at what day and hour the synchronization is scheduled, and you will be able to cancel the synchronization by pressing the **HERE** text.
After the synchronization process is complete, you will see in the **Messages** tab a **Success: Synchronization process **or a **FAILURE: Synchronization process** message.
 |
*Visualization of the success: synchronization process message tab* |
In the **Success: Synchronization process** message you will see an information, that your synchronization was completed successful, and planned changes has been applied.
**FAILURE: Synchronization process** message will show you an error pointing out why the synchronization was unsuccessful.
A user who has initiated the synchronization process will additionally receive an email message on successful synchronization.
 |
*Visualization of the e-mail message* |