Yair Zaslavsky has uploaded a new change for review. Change subject: core: can't add user without system level admin permission ......................................................................
core: can't add user without system level admin permission This patch fixes a regression introduced at Ib62e1c051bc78b8a9ec0f32e6ba4eb9484242591 1. users manipulation is added to all current roles that have permissions manipulation 2. The check is done not on the system object but on the current object, and on its parents in the hierarchy. Change-Id: I308f9cc5edb53b9633d768fd3d382dc9cf62031c Bug-Url: https://bugzilla.redhat.com/1070651 Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java A packaging/dbscripts/upgrade/03_05_0070_add_missing_manipulate_users_permissions.sql 2 files changed, 36 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/25225/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java index f330c8f..0f6d91e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java @@ -193,9 +193,8 @@ // check if the logged in user has permissions to add another // user from the directory service if (getParameters().getUser() != null && dbUser == null) { - permissionsSubject.add(new PermissionSubject(MultiLevelAdministrationHandler.SYSTEM_OBJECT_ID, - VdcObjectType.System, - VdcActionType.AddUser.getActionGroup())); + permissionsSubject.add(new PermissionSubject(permission.getObjectId(), + permission.getObjectType(), VdcActionType.AddUser.getActionGroup())); } return permissionsSubject; } diff --git a/packaging/dbscripts/upgrade/03_05_0070_add_missing_manipulate_users_permissions.sql b/packaging/dbscripts/upgrade/03_05_0070_add_missing_manipulate_users_permissions.sql new file mode 100644 index 0000000..8ee6000 --- /dev/null +++ b/packaging/dbscripts/upgrade/03_05_0070_add_missing_manipulate_users_permissions.sql @@ -0,0 +1,34 @@ +Create or replace FUNCTION _temp_add_missing_manipulate_users_permissions() +RETURNS VOID + AS $procedure$ + DECLARE + v_CLUSTER_ADMIN_ID UUID; + v_DATA_CENTER_ADMIN_ID UUID; + v_TEMPLATE_OWNER_USER_ID UUID; + v_DISK_OPERATOR_USER_ID UUID; + v_VM_ADMIN_ID UUID; + v_USER_INSTANCE_MANAGER_ID UUID; + v_MANIPULATE_USERS INTEGER; +BEGIN + v_CLUSTER_ADMIN_ID := 'DEF00001-0000-0000-0000-DEF000000001'; + v_DATA_CENTER_ADMIN_ID := 'DEF00002-0000-0000-0000-DEF000000002'; + v_TEMPLATE_OWNER_USER_ID := 'DEF0000A-0000-0000-0000-DEF00000000F'; + v_DISK_OPERATOR_USER_ID := 'DEF0000A-0000-0000-0000-DEF00000000B'; + v_VM_ADMIN_ID := 'DEF00006-0000-0000-0000-DEF000000006'; + v_USER_INSTANCE_MANAGER_ID := 'DEF00012-0000-0000-0000-DEF000000012'; + v_MANIPULATE_USERS = 500; + PERFORM fn_db_add_action_group_to_role(v_CLUSTER_ADMIN_ID, v_MANIPULATE_USERS); + PERFORM fn_db_add_action_group_to_role(v_DATA_CENTER_ADMIN_ID, v_MANIPULATE_USERS); + PERFORM fn_db_add_action_group_to_role(v_TEMPLATE_OWNER_USER_ID, v_MANIPULATE_USERS); + PERFORM fn_db_add_action_group_to_role(v_DISK_OPERATOR_USER_ID, v_MANIPULATE_USERS); + PERFORM fn_db_add_action_group_to_role(v_VM_ADMIN_ID, v_MANIPULATE_USERS); + PERFORM fn_db_add_action_group_to_role(v_USER_INSTANCE_MANAGER_ID, v_MANIPULATE_USERS); + + RETURN; +END; $procedure$ +LANGUAGE plpgsql; + +SELECT _temp_add_missing_manipulate_users_permissions(); +drop function _temp_add_missing_manipulate_users_permissions(); + + -- To view, visit http://gerrit.ovirt.org/25225 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I308f9cc5edb53b9633d768fd3d382dc9cf62031c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches