|
47 | 47 | from st2common.services import action as action_service
|
48 | 48 | from st2common.services import executions as execution_service
|
49 | 49 | from st2common.services import trace as trace_service
|
50 |
| -from st2common.services import rbac as rbac_service |
51 | 50 | from st2common.util import isotime
|
52 | 51 | from st2common.util import action_db as action_utils
|
53 | 52 | from st2common.util import param as param_utils
|
54 | 53 | from st2common.util.jsonify import try_loads
|
55 | 54 | from st2common.rbac.types import PermissionType
|
56 |
| -from st2common.rbac import utils as rbac_utils |
57 |
| -from st2common.rbac.utils import assert_user_has_resource_db_permission |
58 |
| -from st2common.rbac.utils import assert_user_is_admin_if_user_query_param_is_provided |
| 55 | +from st2common.rbac.backends import get_rbac_backend |
59 | 56 |
|
60 | 57 | __all__ = [
|
61 | 58 | 'ActionExecutionsController'
|
@@ -118,13 +115,16 @@ def _handle_schedule_execution(self, liveaction_api, requester_user, context_str
|
118 | 115 | abort(http_client.BAD_REQUEST, message)
|
119 | 116 |
|
120 | 117 | # Assert the permissions
|
121 |
| - assert_user_has_resource_db_permission(user_db=requester_user, resource_db=action_db, |
122 |
| - permission_type=PermissionType.ACTION_EXECUTE) |
| 118 | + permission_type = PermissionType.ACTION_EXECUTE |
| 119 | + rbac_utils = get_rbac_backend().get_utils_class() |
| 120 | + rbac_utils.assert_user_has_resource_db_permission(user_db=requester_user, |
| 121 | + resource_db=action_db, |
| 122 | + permission_type=permission_type) |
123 | 123 |
|
124 | 124 | # Validate that the authenticated user is admin if user query param is provided
|
125 | 125 | user = liveaction_api.user or requester_user.name
|
126 |
| - assert_user_is_admin_if_user_query_param_is_provided(user_db=requester_user, |
127 |
| - user=user) |
| 126 | + rbac_utils.assert_user_is_admin_if_user_query_param_is_provided(user_db=requester_user, |
| 127 | + user=user) |
128 | 128 |
|
129 | 129 | try:
|
130 | 130 | return self._schedule_execution(liveaction=liveaction_api,
|
@@ -169,6 +169,7 @@ def _schedule_execution(self, liveaction, requester_user, action_db, user=None,
|
169 | 169 | # Include RBAC context (if RBAC is available and enabled)
|
170 | 170 | if cfg.CONF.rbac.enable:
|
171 | 171 | user_db = UserDB(name=user)
|
| 172 | + rbac_service = get_rbac_backend().get_service_class() |
172 | 173 | role_dbs = rbac_service.get_roles_for_user(user_db=user_db, include_remote=True)
|
173 | 174 | roles = [role_db.name for role_db in role_dbs]
|
174 | 175 | liveaction.context['rbac'] = {
|
@@ -299,6 +300,7 @@ def get(self, id, attribute, requester_user):
|
299 | 300 | action_exec_db = self.access.impl.model.objects.filter(id=id).only(*fields).get()
|
300 | 301 |
|
301 | 302 | permission_type = PermissionType.EXECUTION_VIEW
|
| 303 | + rbac_utils = get_rbac_backend().get_utils_class() |
302 | 304 | rbac_utils.assert_user_has_resource_db_permission(user_db=requester_user,
|
303 | 305 | resource_db=action_exec_db,
|
304 | 306 | permission_type=permission_type)
|
|
0 commit comments