Projects:Disabling Modules/Functional Documentation
The goal of this project is to add the capability to disable modules. This is interesting for commercial modules which are not wanted to be used for some time, but it is not desirable to uninstall them because its data it still valuable.
- Only the following artifacts are disabled; the rest of elements included in the module (jar files, db tables, pl) as well as manual and generated code are still present and is compiled.
User roles & profiles
- System Administrator. Is the main role for this project, he has the capability of disable currently installed modules.
- Standard User. Standard user making use of the installed modules in Openbravo ERP will notice he's not able any more to operate the features included within disabled modules.
Business process definition
Wendy is the System Administrator of a Openbravo ERP instance. She is professional subscriber of the Neverland Localization Pack module, but this subscription is about to expire and she, together with the company board, is considering the renewal for this module.
Alice is an accountant that works with the Openbravo ERP instance Wendy administers.
After the expiration date, Alice is not able to login the application anymore, when she tries to do so, she receives this message: The license for the following installed modules has expired. Only System Administrator role can log into the application to renew the license, uninstall or disable the modules. Neverland Localization Pack. She contacts Wendy to solve this problem.
Wendy receives the same message when she tries to login, but as her user has System Administrator role, she is able to login. At this moment there is not yet a clear decision about renewing the license for Neverland Localization Pack, but she does not want to uninstall the module because data contained in the tables it creates would be lost and in case the license is renewed, she would have to recover it. So she decides to disable the module. The operation is simple: she just goes to Module Management window, selects the module and clicks on the Disable button.
After this, there's no login limitation for Alice. But she realizes all the options that Neverland Localization Pack includes are not longer present in the menu.
Functional requirements based on business processes
- Modules can be disabled/enabled from MMC
- When a module is disabled all its artifacts (windows, forms, reports and processes) are not accessible.
- In case the license for a disabled module is expired, login is not locked.
- Even the module is disabled, it still accepts updates.
User Interface Mockups
The only new UI is in Module Manager Console:
Open Discussion Items
Closed Discussion Items
- Code review, repo: https://code.openbravo.com/erp/devel/pi-disabling-modules
- Install a commercial module. Check it is enabled.
- Update license to make this module expired, renew license. Check login only accepts system admin.
- Disable module from MMC.
- Check System Admin limitation on login is not present.
- Check the menu entries defined in the module are not present
- Check tabs added to core windows are not present
- Check processes defined within the module callable from core windows show an error message but it is not possible to execute them.
- Publish a new commercial version for the disabled module
- Scan for updates, check there is an update available
- Install the upadte, check the module is still disabled
- Enable the module again
- Check the login is limited to System Admin
- Now the artifacts for system admin are accessible