Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devel:documentation:modules_extras [2019/11/06 11:14]
kopro [Get titles before and after]
devel:documentation:modules_extras [2020/06/24 11:29] (current)
sourek
Line 1: Line 1:
 ====== CzechIdM - extras ====== ====== CzechIdM - extras ======
-CzechIdM - extras contains various features, which are not suited to be in any other module. List of the currently supported features is bellow.+CzechIdM - extras contains various features, which are not suited to be in any other module. List of the currently supported features is below.
  
 Currently supported CzechIdM version : 9.2.2 Currently supported CzechIdM version : 9.2.2
  
 +[[https://​github.com/​bcvsolutions/​czechidm-extras]]
 ===== Developing and releasing ===== ===== Developing and releasing =====
-<note important>​Code contributions missing tests and/or documentation ​will be rejected. If such code is somehow present ​in the ''​develop'' ​branch, the ''​develop''​ is considered unstable and no new releases of the module (and merges into ''​master''​) can be made.</​note>​+How to develop a new feature in extras: 
 + 
 +  - Create a specification page in private section ​and consult it with module owner and other colleagues. Specification page should contain: 
 +   - Usecases - why we or user need this feature, what problem does it solve? 
 +   - Why is it in extras and not in core, or other module? 
 +   - Functional specification - how should it work, edge cases 
 +  - Ask a module owner, if this feature can be a part of extras and in which version it will be published 
 +  - Create ticket ​in Redmine with final requirements and with correct target version 
 +  - Implement ​the feature in a separate GIT branch 
 +  - Create merge request to develop ​or LTS version 
 +  - Get someone from product team, or module ​owner to review your changes 
 +  - After successfull review, ask module owner to merge you code 
 + 
 +Rules for code review: 
 +  * All new features have at least 80 percent test coverage 
 +  * All features are documented ​(tutorials are welcomed ​and may even be required if the feature is complicated) 
 +  * There are no sonar issues in commited code 
 +  * Changelog is updated 
 +  * Feature is by default turned off (can be enabled either by processor, or configuration property) 
 + 
 + 
 +<note important>​If your code does not meet the requirements mentioned above, it may be rejected.</​note>​
  
   * When developing, use our standard gitflow:   * When developing, use our standard gitflow:
Line 39: Line 61:
 ===== Status task ===== ===== Status task =====
 Documentation is available here: [[tutorial:​adm:​status_task_how_to_set_up|]] Documentation is available here: [[tutorial:​adm:​status_task_how_to_set_up|]]
 +Information about content is here: [[devel:​documentation:​modules_extras:​status_task_content|]]
  
 ===== SSO authenticate ===== ===== SSO authenticate =====
 Documentation is available here: [[documentation:​security:​sso_authentificate|]] Documentation is available here: [[documentation:​security:​sso_authentificate|]]
 +
 +===== Role force provisioning to particular system =====
 +The tutorial is available here: [[tutorial:​adm:​force_provisioning_for_roles|]]
  
 ===== Guarantees of roles can assign their roles to everybody ===== ===== Guarantees of roles can assign their roles to everybody =====
Line 65: Line 91:
 More information is available here: [[tutorial:​adm:​notification_-_identity_s_last_contract_is_ending|]] More information is available here: [[tutorial:​adm:​notification_-_identity_s_last_contract_is_ending|]]
  
 +Edit: full IdmIdentityDto was added for use in a template in 1.7.0
 +
 +Edit: Support for technical identities added for use in version 1.9.0
 ===== Get titles before and after ===== ===== Get titles before and after =====
 Almost every project receive all titles in one string and IdM allow separates titles before and after. For this case was created in *ExtrasUtils* two methods *getTitlesAfter* and *getTitlesBefore*. And transformation scripts *extrasGetTitlesBefore* and *extrasGetTitlesAfter*,​ transformation scripts calls method from utils. Almost every project receive all titles in one string and IdM allow separates titles before and after. For this case was created in *ExtrasUtils* two methods *getTitlesAfter* and *getTitlesBefore*. And transformation scripts *extrasGetTitlesBefore* and *extrasGetTitlesAfter*,​ transformation scripts calls method from utils.
Line 77: Line 106:
 You can use this tool to create automatic roles which are assigned based on the position within the organization structure using a CSV file as a source. ​ You can use this tool to create automatic roles which are assigned based on the position within the organization structure using a CSV file as a source. ​
 More information is available here: [[tutorial:​adm:​import_automatic_roles_on_tree_nodes|]] ​   More information is available here: [[tutorial:​adm:​import_automatic_roles_on_tree_nodes|]] ​  
 +
 +===== Groups synchronization workflow ​ =====
 +Since module version **1.4.0** was exists better workflow for groups synchronization than in core. This workflow has same features as product. In product will be available same feature as this workflow but with configuration from GUI. 
 +
 +Documentation for configuration is available [[tutorial:​dev:​ad_groups_sync_workflow|]].
 +
 +===== Workflow to disable contract on MISSING_ACCOUNT =====
 +Setting this workflow (extrasDisableMissingContract) as workflow for action in contract reconciliation will disable contract, when its being synchronized. It can be used for example, in situations when contracts are being deleted from source data after expiration and they keep being stuck in MISSING_ACCOUNT state.
 +
 +Note: When using this workflow, please consider the possibility that the contracts may "​reappear"​ in the source data. In such case, it would make sense to enable the contracts again, e.g. by mapping the attribute "​state"​ and filling it by value ''​null''​ (= active contract).
 +
 +===== Groups membership in multi domain (cross domain) AD environment =====
 +Since module version **1.8.0**
 +
 +Documentation is available [[tutorial:​adm:​systems_-_manage_groups_membership_in_multi_domain_cross_domain_ad_environment|]]
 +
 +===== Evaluator (permissions) for identities that has relationship on defined organization unit =====
 +Since module version **1.9.0**. **Available only on LTS version!**
 +
 +Documentation is available [[devel:​documentation:​modules_extras:​identity_evaluator_by_work_position|there]]
 +
 +===== Evaluator (permissions) for roles that is inside defined role catalogue =====
 +Since module version **1.9.0**. **Available only on LTS version!**
 +
 +Documentation is available [[devel:​documentation:​modules_extras:​role_evaluator_by_role_catalogue|there]].
 +
 +===== Import code list and it's items =====
 +Since module version **1.9.0** and **2.4.0**
 +
 +Documentation is available [[devel:​documentation:​modules_extras:​import_code_list_an_it_s_items|there]]
 +
 +===== Evaluators (permissions) for Identities and Contracts which are both subordinate and have given projection =====
 +Since module version **2.4.0**.
 +
 +Documentation is available [[devel:​documentation:​modules_extras:​subordinate_projection_evaluators|there]].