Yair Zaslavsky has uploaded a new change for review. Change subject: aaa: present authz and namespace information ......................................................................
aaa: present authz and namespace information This patch presents authz and namespace info at users main tab, and in permissions sub tabs Topic: AAA Change-Id: I4b2bc84364b8ac7ee180848a66bd03489b03e4d3 Bug-Url: https://bugzilla.redhat.com/1120195 Signed-off-by: Yair Zaslavsky <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java M packaging/dbscripts/create_functions.sql M packaging/dbscripts/create_views.sql 7 files changed, 94 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/30645/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java index bb0251e..329a3c7 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java @@ -16,6 +16,9 @@ private String roleName; private String ownerName; private RoleType roleType; + private String authz; + + private String namespace; public Permissions() { this (Guid.Empty, Guid.Empty, null, null); @@ -108,6 +111,22 @@ return roleType; } + public String getAuthz() { + return authz; + } + + public void setAuthz(String authz) { + this.authz = authz; + } + + public String getNamespace() { + return namespace; + } + + public void setNamespace(String namespace) { + this.namespace = namespace; + } + @Override public int hashCode() { final int prime = 31; @@ -121,6 +140,9 @@ result = prime * result + ((roleName == null) ? 0 : roleName.hashCode()); result = prime * result + ((roleType == null) ? 0 : roleType.hashCode()); result = prime * result + ((roleId == null) ? 0 : roleId.hashCode()); + result = prime * result + ((authz == null) ? 0 : authz.hashCode()); + result = prime * result + ((namespace == null) ? 0 : namespace.hashCode()); + return result; } @@ -140,7 +162,9 @@ && ObjectUtils.objectsEqual(adElementId, other.adElementId) && ObjectUtils.objectsEqual(objectId, other.objectId) && objectType == other.objectType - && ObjectUtils.objectsEqual(roleId, other.roleId)); + && ObjectUtils.objectsEqual(roleId, other.roleId) + && ObjectUtils.objectsEqual(authz, other.authz) + && ObjectUtils.objectsEqual(namespace, other.namespace)); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java index e0ae04a..a603f44 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java @@ -1868,4 +1868,10 @@ @DefaultStringValue("Required Random Number Generator sources:") String requiredRngSources(); + + @DefaultStringValue("Namespace") + String namespace(); + + @DefaultStringValue("Authorization provider") + String authz(); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java index 58cfac7..d6f52fc 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/permissions/PermissionListModelTable.java @@ -36,6 +36,25 @@ userColumn.makeSortable(); getTable().addColumn(userColumn, constants.userPermission(), "300px"); //$NON-NLS-1$ + TextColumnWithTooltip<Permissions> namespaceColumn = new TextColumnWithTooltip<Permissions>() { + @Override + public String getValue(Permissions object) { + return object.getNamespace(); + } + }; + getTable().addColumn(namespaceColumn, constants.namespace(), "300px"); //$NON-NLS-1$ + + TextColumnWithTooltip<Permissions> authzColumn = new TextColumnWithTooltip<Permissions>() { + @Override + public String getValue(Permissions object) { + return object.getAuthz(); + } + }; + authzColumn.makeSortable(); + getTable().addColumn(namespaceColumn, constants.authz(), "300px"); //$NON-NLS-1$ + + + TextColumnWithTooltip<Permissions> roleColumn = new TextColumnWithTooltip<Permissions>() { @Override public String getValue(Permissions object) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index 1f3d289..82a9187 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -3743,4 +3743,10 @@ @DefaultStringValue("Save As Pdf") String exportToPdf(); + + @DefaultStringValue("Authorization provider") + String authzProvider(); + + @DefaultStringValue("Namespace") + String namespace(); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java index c5996d2..46ca07f 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabUserView.java @@ -63,6 +63,20 @@ userNameColumn.makeSortable(VdcUserConditionFieldAutoCompleter.USER_NAME); getTable().addColumn(userNameColumn, constants.userNameUser(), "150px"); //$NON-NLS-1$ + getTable().addColumn(new TextColumnWithTooltip<DbUser>() { + @Override + public String getValue(DbUser object) { + return object.getNamespace(); + } + }, constants.namespace(), "150px"); //$NON-NLS-1$ + + getTable().addColumn(new TextColumnWithTooltip<DbUser>() { + @Override + public String getValue(DbUser object) { + return object.getDomain(); + } + }, constants.authzProvider(), "150px"); //$NON-NLS-1$ + TextColumnWithTooltip<DbUser> groupColumn = new TextColumnWithTooltip<DbUser>() { @Override public String getValue(DbUser object) { diff --git a/packaging/dbscripts/create_functions.sql b/packaging/dbscripts/create_functions.sql index 9d92dae..7205d79 100644 --- a/packaging/dbscripts/create_functions.sql +++ b/packaging/dbscripts/create_functions.sql @@ -10,6 +10,8 @@ CREATE TYPE idTextType AS(id text); CREATE TYPE idUuidType AS(id UUID); CREATE TYPE booleanResultType AS(result BOOLEAN); +DROP TYPE IF EXISTS authzEntryInfoType CASCADE; +CREATE TYPE authzEntryInfoType AS(name text, namespace VARCHAR(2048), authz VARCHAR(255)); CREATE OR REPLACE FUNCTION getGlobalIds(v_name VARCHAR(4000)) @@ -465,6 +467,27 @@ END; $function$ LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION public.fn_authz_entry_info(v_ad_element_id IN uuid) RETURNS AuthzEntryInfoType STABLE AS +$function$ +DECLARE + result authzEntryInfoType; + +BEGIN + if (v_ad_element_id = getGlobalIds('everyone')) then + select 'Everyone','*','' into result; + else + select(COALESCE(name,'') || ' ' || COALESCE(surname,'') || ' (' || COALESCE(username,'') || '@' || COALESCE(domain,'') || ')'), namespace, domain INTO result from users where user_id = v_ad_element_id; + if (result is null) then + select name, namespace, domain INTO result from ad_groups where ID = v_ad_element_id; + end if; + end if; + return result; +END; $function$ +LANGUAGE plpgsql; + + + CREATE OR REPLACE FUNCTION public.fn_get_ad_element_name(v_ad_element_id IN uuid) RETURNS text STABLE AS $function$ DECLARE diff --git a/packaging/dbscripts/create_views.sql b/packaging/dbscripts/create_views.sql index 5de1ed7..aa1f630 100644 --- a/packaging/dbscripts/create_views.sql +++ b/packaging/dbscripts/create_views.sql @@ -908,7 +908,7 @@ SELECT permissions.id as id, permissions.role_id as role_id, permissions.ad_element_id as ad_element_id, permissions.object_id as object_id, permissions.object_type_id as object_type_id, roles.name as role_name, roles.role_type as role_type, roles.allows_viewing_children as allows_viewing_children, roles.app_mode as app_mode, fn_get_entity_name(permissions.object_id,permissions.object_type_id) as object_name, - fn_get_ad_element_name(permissions.ad_element_id) as owner_name + (fn_authz_entry_info(permissions.ad_element_id)).name as owner_name, (fn_authz_entry_info(permissions.ad_element_id)).namespace as namespace, (fn_authz_entry_info(permissions.ad_element_id)).authz as authz FROM permissions INNER JOIN roles ON permissions.role_id = roles.id; -- To view, visit http://gerrit.ovirt.org/30645 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4b2bc84364b8ac7ee180848a66bd03489b03e4d3 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
