Workflow/Category deployment failed with "USER cannot perform Security on OBJECT" error when trying to register artifact with category
In some cases, deploying a Package might fail on the Workflows or Categories due to the user not having security permissions on the Category.
This occurs when User 1 creates a list and generates the SmartObject on it. This will grant Security rights on the category to that user. If user 2 then tries to deploy to that category it fails on the workflow because the user deploying doesn't have security rights on the category.
To reproduce this issue:
- Create a list and appify with Data as user 1.
- Try to deploy a package as user 2 to that list.
- This is currently by design for the Authorization Framework.
This can also occur on Forms, Views and SmartObjects:
"Error trying to register artifact with category. Exception: [USER] does not have Security rights on the [OBJECT] Form / View / SmartObject"
As a workaround please do the following:
1. Grant user Security Administrator rights for deployment.
2. In K2 Management > Categories: Find the list in the category tree that is failing due to security. Click on the list and on the right, it will populate the Authorization Security panel.
Note that Everyone is there by default but with no Security permission. The user that created the SmartObject will also be added there with Security Rights. If the user that created the SmartObjects is a K2 Admin / Security Admin then you will not see the user here, as Admins are hidden.
3. Grant the user that is deploying Security Allow or Security Allow for Everyone and the deployment will pass as it now has rights to manage the security.