====== Bulk action for identities ======
Bulk actions on identities are used for making easy and asynchronous changes on multiple identities.
===== Supported bulk actions on identities =====
* Remove,
* disable manually,
* enable manually,
* roles assignment,
* role removing,
* resave,
* role deduplication.
===== How can I choose identities for bulk action =====
There are two ways to define for what identities will be the bulk action processed. **First way is to select all identities**:
{{ :tutorial:adm:bulk01.png |}}
{{ :tutorial:adm:bulk02.png |}}
And second is to choose identities by one through all pages.
{{ :tutorial:adm:bulk04.png |}}
{{ :tutorial:adm:bulk03.png |}}
Selecting identities by select box through all pages works only for agendas that implement backend bulk action. **On classic agendas this doesn't work**.
If you choose all identities, **there exist a chance that processed items will be different** than currently filtered identities. Because you execute the bulk action with a filter (not specified set of identities) and this filter may have different results after some time needed to process the action.
===== Bulk actions =====
==== Remove identities ====
Bulk action Remove identities doesn't have any specific settings. You can only choose what identities will be processed.
{{ :tutorial:adm:bulk06.png |}}
Required permission for execute:
* Identity delete and read
==== Disable manually identities ====
Bulk action Disable identities doesn't have any specific settings. You can only choose what identities will be processed. The bulk action only changes identity state to ''DISABLED_MANUALLY''. **Now it isn't possible to deactivate identity that is already deactivated.**
{{ :tutorial:adm:bulk05.png |}}
**Required permission for execute:**
* Identity update and read
==== Enable manually identities ====
Bulk action Enable identities doesn't have any specific settings. You can only choose what identities will be processed. The bulk action evaluates the new [[devel:documentation:identities#identity_state|identity state]]. The identity must be in state ''DISABLED_MANUALLY'' before running the bulk action.
{{ :tutorial:adm:bulk07.png |}}
Required permission for execute:
* Identity update and read
==== Roles assignment ====
This bulk action supports specific settings:
* **Roles** - roles that will be assigned,
* **Approve** - if you have permission for execute without approving new roles (IdmRoleRequest - Execute), you can uncheck this selecbox,
* **Assign to main contract only** - new roles will be assigned only to main contract instead of assigning for every valid or future valid contract,
* **Valid from** - if valid from is not filled, then will be filled from contract automatically,
* **Valid till** - if valid from is not filled, then will be not set (assigned role will be removed by contact validity).
{{ :tutorial:adm:bulk09.png |}}
**Required permission for execute:**
* Identity read and change permission,
* Contract read or autocomplete,
* Role request create,
* Role request concept create.
==== Role removing ====
This bulk action supports specific settings:
* **Roles** - roles that will be removed,
* **Approve** - if you have permission for execute without approving remove roles, you can uncheck this selectbox,
* **Remove only from the main contract** - the roles will be removed only from the main contract instead of removing from all contracts.
{{ :tutorial:adm:bulk08.png |}}
This bulk action remove all identity roles from all contracts or just main.
**Required permission for execute:**
* Identity read and change permission,
* Contract read or autocomplete,
* Role request create,
* Role request concept create.
==== Resave identity ====
Bulk action resave identity. Bulk action executes simple save on identity.
{{ :tutorial:adm:resave.png |}}
**Required permission for execute:**
* Identity read and change permission,
* Contract read or autocomplete,
* Role request create,
* Role request concept create.
==== Role deduplication ====
Bulk action for remove duplicity between roles. For more information and removing algorithm see [[devel:documentation:roles:adm:duplicit_roles|]]
{{ :tutorial:adm:role_deduplication.png |}}
**Required permission for execute:**
* Identity read and change permission,
* identity role read,
* identity contract autocomplete.
==== Change contract validity and position ====
This bulk action (BA) implements setting of the new work position and validity dates for user's contracts. There is small divergence in using this BA from regular setting of these attributes on the contract detail. The thing is that if no value is selected in BA, corresponding item is **not changed**. This is the difference from standard contract detail which allows setting of the empty value. Therefore this BA is not able to set unlimited contract validity or no contract position. This limitation will be removed in future.
{{ :tutorial:adm:contractvalidityposition.png |}}
@since 14.1.0
If you add the following configuration variable, it will pre-fill the **Valid till** date for contracts. The pre-filled date will be today's date + x days based on the configuration value.
For example:
''idm.sec.core.bulk.action.identity-change-contract-tree-node-and-validity.extension-period-days=365''
Date will be pre-filed with today date + 365 days.
**Required permission for execute:**
* Identity contract update
* Tree node autocomplete
===== Example =====
{{ :tutorial:adm:bulk_action.gif |}}