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 <yzasl...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/PermissionsCommandBase.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Permissions.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
M 
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
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/section/main/view/popup/configure/SystemPermissionView.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
10 files changed, 123 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/14/30714/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/PermissionsCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/PermissionsCommandBase.java
index f4698d9..9c8c7dc 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/PermissionsCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/PermissionsCommandBase.java
@@ -67,11 +67,23 @@
         return dbUser == null ? (dbGroup == null ? "" : dbGroup.getName()) : 
dbUser.getLoginName();
     }
 
+    public String getNamespace() {
+        initUserAndGroupData();
+        return dbUser == null ? (dbGroup == null ? "" : 
dbGroup.getNamespace()) : dbUser.getNamespace();
+
+    }
+
+    public String getAuthz() {
+        initUserAndGroupData();
+        return dbUser == null ? (dbGroup == null ? "" : dbGroup.getDomain()) : 
dbUser.getDomain();
+
+    }
+
     public void initUserAndGroupData() {
         if (dbUser == null) {
             dbUser = 
getDbUserDAO().get(getParameters().getPermission().getad_element_id());
         }
-        if (dbGroup == null) {
+        if (dbUser == null && dbGroup == null) {
             dbGroup = 
getAdGroupDAO().get(getParameters().getPermission().getad_element_id());
         }
     }
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..affb90a 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;
     }
 
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
index cd76441..f68d14e 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
@@ -266,6 +266,8 @@
             entity.setRoleName(rs.getString("role_name"));
             entity.setObjectName(rs.getString("object_name"));
             entity.setOwnerName(rs.getString("owner_name"));
+            entity.setNamespace(rs.getString("namespace"));
+            entity.setAuthz(rs.getString("authz"));
             entity.setRoleType(RoleType.getById(rs.getInt("role_type")));
             return entity;
         }
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
index 3ddcca3..aebe4b9 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
@@ -379,7 +379,7 @@
 VDS_ARCHITECTURE_NOT_SUPPORTED_FOR_CLUSTER=Host ${VdsName} has architecture 
${VdsArchitecture} and cannot join Cluster ${VdsGroupName} which has 
architecture ${VdsGroupArchitecture}.
 CPU_TYPE_UNSUPPORTED_IN_THIS_CLUSTER_VERSION=Host ${VdsName} moved to 
Non-Operational state as host CPU type is not supported in this cluster 
compatibility version or is not supported at all
 RUN_VM_FAILED=Cannot run VM ${VmName} on Host ${VdsName}. Error: ${ErrMsg}
-USER_ADD_PERMISSION=User/Group ${SubjectName} was granted permission for Role 
${RoleName} on ${VdcObjectType} ${VdcObjectName}, by ${UserName}.
+USER_ADD_PERMISSION=User/Group ${SubjectName}, Namespace ${Namespace}, 
Authorization provider: ${Authz} was granted permission for Role ${RoleName} on 
${VdcObjectType} ${VdcObjectName}, by ${UserName}.
 USER_ADD_PERMISSION_FAILED=User ${UserName} failed to grant permission for 
Role ${RoleName} on ${VdcObjectType} ${VdcObjectName} to User/Group 
${SubjectName}.
 USER_REMOVE_PERMISSION=User/Group ${SubjectName} Role ${RoleName} permission 
was removed from ${VdcObjectType} ${VdcObjectName} by ${UserName}
 USER_REMOVE_PERMISSION_FAILED=User ${UserName} failed to remove permission for 
Role ${RoleName} from ${VdcObjectType} ${VdcObjectName} to User/Group 
${SubjectName}
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..4e2d92b 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,26 @@
         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();
+            }
+        };
+        namespaceColumn.makeSortable();
+        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(authzColumn, 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/section/main/view/popup/configure/SystemPermissionView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/SystemPermissionView.java
index 9936a7f..df054b1 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/SystemPermissionView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/configure/SystemPermissionView.java
@@ -78,7 +78,23 @@
                 return object.getOwnerName();
             }
         };
-        table.addColumn(userColumn, constants.userPermission());
+        table.addColumn(userColumn, constants.userPermission(), "300px"); 
//$NON-NLS-1$
+
+        TextColumnWithTooltip<Permissions> namespaceColumn = new 
TextColumnWithTooltip<Permissions>() {
+            @Override
+            public String getValue(Permissions object) {
+                return object.getNamespace();
+            }
+        };
+        table.addColumn(namespaceColumn, constants.namespace(), "200px"); 
//$NON-NLS-1$
+
+        TextColumnWithTooltip<Permissions> authzColumn = new 
TextColumnWithTooltip<Permissions>() {
+            @Override
+            public String getValue(Permissions object) {
+                return object.getAuthz();
+            }
+        };
+        table.addColumn(authzColumn, constants.authz(), "200px"); //$NON-NLS-1$
 
         TextColumnWithTooltip<Permissions> roleColumn = new 
TextColumnWithTooltip<Permissions>() {
             @Override
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..239ea70 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,24 @@
         
userNameColumn.makeSortable(VdcUserConditionFieldAutoCompleter.USER_NAME);
         getTable().addColumn(userNameColumn, constants.userNameUser(), 
"150px"); //$NON-NLS-1$
 
+        TextColumnWithTooltip<DbUser> namespaceColumn = new 
TextColumnWithTooltip<DbUser>() {
+            @Override
+            public String getValue(DbUser object) {
+                return object.getNamespace();
+            }
+        };
+        namespaceColumn.makeSortable();
+        getTable().addColumn(namespaceColumn, constants.namespace(), "150px"); 
//$NON-NLS-1$
+
+        TextColumnWithTooltip<DbUser> authzColumn = new 
TextColumnWithTooltip<DbUser>() {
+            @Override
+            public String getValue(DbUser object) {
+                return object.getDomain();
+            }
+        };
+        authzColumn.makeSortable();
+        getTable().addColumn(authzColumn, constants.authz(), "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/30714
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4b2bc84364b8ac7ee180848a66bd03489b03e4d3
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to