Right now a Professional Instance can be deactivated, converting it in a community instance.
This project aims to allow this two action for Professional Instances:
- When an instance is deactivated it becomes a community instance
- Instances with commercial modules enabled cannot be deactivated.
- Cancel. A canceled instance is a community instance with the following rules:
- It is allowed to cancel an instance with commercial modules installed on it. They can still be used.
- Concurrent users restriction is still applied.
- It is not possible to install new commercial modules or update existent ones.
- Users should be able to convert back from Professional Edition to Community Edition at any time by clicking the "Deactivate" button in the Instance Activation window.
- You cannot deactivate an instance if you have installed commercial modules and before you do so, you have to either uninstall or disable the module.
- Once the instance is converted back to Community Edition, it behaves as such, meaning: no concurrent user control, no ability to install commercial modules and no premium functionality.
The above matches our current behavior + ability to disable modules, which is still needed.
When a Professional Edition subscription expires, the system locks down, meaning that only system administrators can login. This prevents the expiration from going unnoticed. To restore the functioning system, system administrators have three options, all of them available from the Instance Activation window: 1) Renew 2) Deactivate (see above) 3) Cancel Subscription (new behavior)
The new behavior of point 3 has the following logic:
- The Cancel Subscription button is only available if the subscription status is Expired
- When the button is pressed:
- The system invokes a service in Openbravo Butler that updates the license to "Subscription Converted" (should it be renamed Subscription Canceled?)
- A new version of the license is downloaded and it is displayed in the Instance Activation window with status "Canceled" and the term "Canceled" is appended to the Subscription Type (i.e. Subscription Type: Concurrent users limitation - Canceled).
- The Subscription Status is also added to the About window (i.e. Subscription Status: Canceled)
- If the system does not have access to the Internet, there should be a way to do this in disconnected mode. I guess (please confirm) that if the customer contacts us and we go into Butler and manually change the license, then the customer can go to Butler, download a new activation file with the canceled subscription and load it using the current "Refresh with Activation File" button.If that is the case, then I think we should be offering this for a fixed
pre-paid fee (let's say 100 euro) to cover processing expenses.
Once the subscription has been canceled:
- Users should be able to login again
- Concurrent user control continues to be enforced
- Previously installed commercial modules continue to work
- Premium functionality continues to work with the exception of the premium features directly related to services (like the Openbravo Support Connection)
- No new commercial modules can be installed
- Previously installed commercial modules and core cannot be updated any longer.
Please notice that implementing this behavior means changing some of the wording in the Instance Activation window. For example, the following text explaining the Deactivate button (which is already bad) needs to be revised:
To deactivate this Instance from a Professional Subscription System, press the button below. Please note that all commercial features without a valid perpetual subscription will become inactive in this Instance. Please note that all commercial features will become inactive in this Instance.
As core right now is a commercial module, it will be treated as an exception when deactivating an instance, this is it will be allowed to deactivate an instance having a commercial core. Other case would make impossible to deactivate an instance because core is always present.
This project depends on Disabling modules.
- Project branch: https://code.openbravo.com/erp/devel/pi-cancel
- Activate instance with a valid license. Check cancel button is not shown.
- Deactivate instance. Check it is possible.
- Activate instance with a valid license. Install commercial module.
- Try to deactivate, it is not allowed because of commercial module.
- Disable commercial module.
- Deactivate instance, now it is possible.
- Enable commercial module, it is not possible to do because instance is community.
- Try to install another commercial module, it is not possible to do because instance is community.
- Activate instance with a valid license.
- Enable commercial module.
- Update license in butler to make it expired and refresh instance.
- Check cancel button is present.
- Cancel instance.
- Check commercial core features are still accessible (audit trail, Projects...)
- Check commercial module features are still accessible.
- Check concurrent user limitation is still enabled.
- Check about box states the subscription is canceled.
- Try to update core, it is not allowed.
- Try to update the commercial module, it is not allowed.
- Try to install a new commercial module (included in the license), it is not allowed.