Yair Zaslavsky has uploaded a new change for review.

Change subject: aaa: change code of AddUser and AddGroup
......................................................................

aaa: change code of AddUser and AddGroup

removing the check from canDoAction to check if entity exists
in directory as these checks are done both by rest-api and gui.

Topic: AAA
Change-Id: If841c8d30d6ab2c5d06b1637cde93cfc65598a96
Signed-off-by: Yair Zaslavsky <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddPermissionCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddGroupParameters.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddUserParameters.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUsersResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserListModel.java
13 files changed, 127 insertions(+), 190 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/07/30207/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
index 2012841..ce75c35 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddGroupCommand.java
@@ -1,32 +1,18 @@
 package org.ovirt.engine.core.bll;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
-import org.ovirt.engine.api.extensions.ExtMap;
-import org.ovirt.engine.api.extensions.aaa.Authz;
-import org.ovirt.engine.api.extensions.aaa.Authz.GroupRecord;
-import org.ovirt.engine.core.aaa.AuthzUtils;
-import org.ovirt.engine.core.aaa.DirectoryUtils;
 import org.ovirt.engine.core.bll.context.CommandContext;
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.VdcObjectType;
-import org.ovirt.engine.core.common.action.DirectoryIdParameters;
+import org.ovirt.engine.core.common.action.AddGroupParameters;
 import org.ovirt.engine.core.common.businessentities.DbGroup;
-import org.ovirt.engine.core.common.errors.VdcBllMessages;
-import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dao.DbGroupDAO;
-import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;
-import org.ovirt.engine.core.utils.extensionsmgr.EngineExtensionsManager;
 
-public class AddGroupCommand<T extends DirectoryIdParameters>
+public class AddGroupCommand<T extends AddGroupParameters>
     extends CommandBase<T> {
-
-    // We save a reference to the directory group to avoid looking it up once 
when checking the conditions and another
-    // time when actually adding the group to the database:
-    private ExtMap groupRecord;
 
     public AddGroupCommand(T params) {
         this(params, null);
@@ -44,30 +30,7 @@
 
     @Override
     protected boolean canDoAction() {
-        String directoryName = getParameters().getDirectory();
-        String id = getParameters().getId();
-        ExtensionProxy authz = 
EngineExtensionsManager.getInstance().getExtensionByName(directoryName);
-        if (authz == null) {
-            addCanDoActionMessage(VdcBllMessages.USER_MUST_EXIST_IN_DIRECTORY);
-            return false;
-        }
-
-        boolean foundGroup = false;
-        for (String namespace : getParameters().getNamespace() != null ? 
Arrays.asList(getParameters().getNamespace())
-                : authz.getContext().<List<String>> 
get(Authz.ContextKeys.AVAILABLE_NAMESPACES)) {
-            groupRecord = AuthzUtils.findGroupRecordsByIds(authz, namespace, 
Arrays.asList(id), true, true).get(0);
-            if (groupRecord != null) {
-                foundGroup = true;
-                break;
-            }
-        }
-
-        if (!foundGroup) {
-            addCanDoActionMessage(VdcBllMessages.USER_MUST_EXIST_IN_DIRECTORY);
-            return false;
-        }
-
-        addCustomValue("NewUserName", groupRecord.<String> 
get(GroupRecord.NAME));
+        addCustomValue("NewUserName", 
getParameters().getGroupToAdd().getName());
 
         return true;
     }
@@ -77,21 +40,17 @@
         // First check if the group is already in the database, if it is we
         // need to update, if not we need to insert:
         DbGroupDAO dao = getAdGroupDAO();
-        DbGroup dbGroup = dao.getByExternalId(getParameters().getDirectory(), 
groupRecord.<String> get(GroupRecord.NAME));
+        DbGroup groupToAdd = getParameters().getGroupToAdd();
+        DbGroup dbGroup = dao.getByExternalId(groupToAdd.getDomain(), 
groupToAdd.getExternalId());
         if (dbGroup == null) {
-            dbGroup = 
DirectoryUtils.mapGroupRecordToDbGroup(getParameters().getDirectory(), 
groupRecord);
-            dbGroup.setId(Guid.newGuid());
-            dao.save(dbGroup);
+            dao.save(groupToAdd);
         }
         else {
-            Guid id = dbGroup.getId();
-            dbGroup = 
DirectoryUtils.mapGroupRecordToDbGroup(getParameters().getDirectory(), 
groupRecord);
-            dbGroup.setId(id);
             dao.update(dbGroup);
         }
 
         // Return the identifier of the created group:
-        setActionReturnValue(dbGroup.getId());
+        setActionReturnValue(groupToAdd.getId());
         setSucceeded(true);
     }
 
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 6a1e5cb..ab43418 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
@@ -7,7 +7,8 @@
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.VdcObjectType;
-import org.ovirt.engine.core.common.action.DirectoryIdParameters;
+import org.ovirt.engine.core.common.action.AddGroupParameters;
+import org.ovirt.engine.core.common.action.AddUserParameters;
 import org.ovirt.engine.core.common.action.PermissionsOperationsParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
@@ -105,7 +106,7 @@
                 user = existing;
             }
             else {
-                user = addUser(id, directory, externalId, user.getNamespace());
+                user = addUser(user);
                 if (user == null) {
                     setSucceeded(false);
                     return;
@@ -122,7 +123,7 @@
                 group = existing;
             }
             else {
-                group = addGroup(id, directory, externalId, 
group.getNamespace());
+                group = addGroup(group);
                 if (group == null) {
                     setSucceeded(false);
                     return;
@@ -206,16 +207,13 @@
         return permissionsSubject;
     }
 
-    private DbUser addUser(Guid id, String directory, String externalId, 
String namespace) {
+    private DbUser addUser(DbUser dbUser) {
         // Try to add the user with the external id:
-        if (directory != null && externalId != null) {
-            DirectoryIdParameters parameters = new DirectoryIdParameters();
-            parameters.setDirectory(directory);
-            parameters.setId(externalId);
-            parameters.setNamespace(namespace);
+        if (dbUser.getDomain() != null && dbUser.getExternalId() != null) {
+            AddUserParameters parameters = new AddUserParameters(dbUser);
             VdcReturnValueBase result = 
runInternalAction(VdcActionType.AddUser, parameters, 
cloneContextAndDetachFromParent());
             if (result.getCanDoAction()) {
-                id = (Guid) result.getActionReturnValue();
+                Guid id = (Guid) result.getActionReturnValue();
                 if (id != null) {
                     return getDbUserDAO().get(id);
                 }
@@ -226,16 +224,13 @@
         return null;
     }
 
-    private DbGroup addGroup(Guid id, String directory, String externalId, 
String namespace) {
+    private DbGroup addGroup(DbGroup groupToAdd) {
         // Try to add the user with the external id:
-        if (directory != null && externalId != null) {
-            DirectoryIdParameters parameters = new DirectoryIdParameters();
-            parameters.setDirectory(directory);
-            parameters.setId(externalId);
-            parameters.setNamespace(namespace);
+        if (groupToAdd.getDomain() != null && groupToAdd.getExternalId() != 
null) {
+            AddGroupParameters parameters = new AddGroupParameters(groupToAdd);
             VdcReturnValueBase result = 
runInternalAction(VdcActionType.AddGroup, parameters, 
cloneContextAndDetachFromParent());
             if (result.getCanDoAction()) {
-                id = (Guid) result.getActionReturnValue();
+                Guid id = (Guid) result.getActionReturnValue();
                 if (id != null) {
                     return getAdGroupDAO().get(id);
                 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
index 182d5d2..8762617 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddUserCommand.java
@@ -2,30 +2,17 @@
 
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
 
-import org.ovirt.engine.api.extensions.ExtMap;
-import org.ovirt.engine.api.extensions.aaa.Authz;
-import org.ovirt.engine.api.extensions.aaa.Authz.PrincipalRecord;
-import org.ovirt.engine.core.aaa.AuthzUtils;
-import org.ovirt.engine.core.aaa.DirectoryUtils;
 import org.ovirt.engine.core.bll.context.CommandContext;
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.VdcObjectType;
-import org.ovirt.engine.core.common.action.DirectoryIdParameters;
+import org.ovirt.engine.core.common.action.AddUserParameters;
 import org.ovirt.engine.core.common.businessentities.DbUser;
-import org.ovirt.engine.core.common.errors.VdcBllMessages;
-import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.dao.DbUserDAO;
-import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;
-import org.ovirt.engine.core.utils.extensionsmgr.EngineExtensionsManager;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 
-public class AddUserCommand<T extends DirectoryIdParameters> extends 
CommandBase<T> {
-    // We save a reference to the directory user to avoid looking it up once 
when checking the conditions and another
-    // time when actually adding the user to the database:
-    private ExtMap principal;
+public class AddUserCommand<T extends AddUserParameters> extends 
CommandBase<T> {
 
     public AddUserCommand(T params) {
         this(params, null);
@@ -43,90 +30,17 @@
 
     @Override
     protected boolean canDoAction() {
-        // Check that the directory name has been provided:
-        String directoryName = getParameters().getDirectory();
-        if (directoryName == null) {
-            log.error(
-                "Can't add user because directory name hasn't been provided."
-            );
-            addCanDoActionMessage(VdcBllMessages.USER_MUST_EXIST_IN_DIRECTORY);
-            return false;
-        }
-
-        // Check that the identifier of the directory user has been provided:
-        String id = getParameters().getId();
-        if (id == null) {
-            log.errorFormat(
-                "Can't add user from directory \"{0}\" because the user 
identifier hasn't been provided.",
-                directoryName
-            );
-            addCanDoActionMessage(VdcBllMessages.USER_MUST_EXIST_IN_DIRECTORY);
-            return false;
-        }
-
-        // Check that the directory exists:
-        ExtensionProxy authz = 
EngineExtensionsManager.getInstance().getExtensionByName(directoryName);
-        if (authz == null) {
-            log.errorFormat(
-                "Can't add user with id \"{0}\" because directory \"{1}\" 
doesn't exist.",
-                id, directoryName
-            );
-            addCanDoActionMessage(VdcBllMessages.USER_MUST_EXIST_IN_DIRECTORY);
-            return false;
-        }
-
-        // Check that the user is available in the directory (and save the 
reference to avoid looking it up later when
-        // actually adding the user to the database):
-        boolean foundUser = false;
-        for (String namespace : getParameters().getNamespace() != null ? 
Arrays.asList(getParameters().getNamespace())
-                : authz.getContext().<List<String>> 
get(Authz.ContextKeys.AVAILABLE_NAMESPACES)) {
-            principal = AuthzUtils.fetchPrincipalsByIdsRecursively(authz, 
namespace, Arrays.asList(id)).get(0);
-            if (principal != null) {
-                foundUser = true;
-                break;
-            }
-        }
-        if (!foundUser) {
-            log.errorFormat(
-                "Can't add user with id \"{0}\" because it doesn't exist in 
directory \"{1}\".",
-                id, directoryName
-            );
-            addCanDoActionMessage(VdcBllMessages.USER_MUST_EXIST_IN_DIRECTORY);
-            return false;
-        }
-
-
-        // Populate information for the audit log:
-        addCustomValue("NewUserName", principal.<String> 
get(PrincipalRecord.NAME));
-
+        addCustomValue("NewUserName", 
getParameters().getUserToAdd().getLoginName());
         return true;
 
     }
 
     @Override
     protected void executeCommand() {
-        DbUserDAO dao = getDbUserDAO();
-
         // First check if the user is already in the database, if it is we 
need to update, if not we need to insert:
-        DirectoryUtils.flatGroups(principal);
-        HashSet<Guid> groupIds = 
DirectoryUtils.getGroupIdsFromPrincipal(getParameters().getDirectory(), 
principal);
-        DbUser dbUser = dao.getByExternalId(getParameters().getDirectory(), 
principal.<String> get(PrincipalRecord.ID));
-        if (dbUser == null) {
-            dbUser = 
DirectoryUtils.mapPrincipalRecordToDbUser(getParameters().getDirectory(), 
principal);
-            dbUser.setId(Guid.newGuid());
-            dbUser.setGroupIds(groupIds);
-            dao.save(dbUser);
-        }
-        else {
-            Guid id = dbUser.getId();
-            dbUser = 
DirectoryUtils.mapPrincipalRecordToDbUser(getParameters().getDirectory(), 
principal);
-            dbUser.setId(id);
-            dbUser.setGroupIds(groupIds);
-            dao.update(dbUser);
-        }
-
-        // Return the identifier of the created user:
-        setActionReturnValue(dbUser.getId());
+        DbUser userToAdd = getParameters().getUserToAdd();
+        SyncUsers.sync(Arrays.asList(userToAdd));
+        
setActionReturnValue(DbFacade.getInstance().getDbUserDao().getByExternalId(userToAdd.getDomain(),
 userToAdd.getExternalId()).getId());
         setSucceeded(true);
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
index cb80065..8ad22c5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SyncUsers.java
@@ -64,14 +64,14 @@
                             log.info(String.format("The user %1$s from authz 
extension %2$s got updated since last interval",
                                     activeUser.getLoginName(),
                                     activeUser.getDomain()));
-                            
DbFacade.getInstance().getDbUserDao().update(activeUser);
+                            
DbFacade.getInstance().getDbUserDao().saveOrUpdate(activeUser);
                         }
                     } else {
                         log.info(String.format("The user %1$s from authz 
extension %2$s could not be found, and will be marked as inactive",
                                 dbUser.getLoginName(),
                                 dbUser.getDomain()));
                         dbUser.setActive(false);
-                        DbFacade.getInstance().getDbUserDao().update(dbUser);
+                        
DbFacade.getInstance().getDbUserDao().saveOrUpdate(dbUser);
                     }
                 }
             } catch (Exception ex) {
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddGroupParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddGroupParameters.java
new file mode 100644
index 0000000..562c031
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddGroupParameters.java
@@ -0,0 +1,28 @@
+package org.ovirt.engine.core.common.action;
+
+import org.ovirt.engine.core.common.businessentities.DbGroup;
+
+public class AddGroupParameters extends VdcActionParametersBase {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -5422503021503559327L;
+    private DbGroup groupToAdd;
+
+    public AddGroupParameters() {
+    }
+
+    public AddGroupParameters(DbGroup groupToAdd) {
+        this.groupToAdd = groupToAdd;
+    }
+
+    public DbGroup getGroupToAdd() {
+        return groupToAdd;
+    }
+
+    public void setGroupToAdd(DbGroup groupToAdd) {
+        this.groupToAdd = groupToAdd;
+    }
+
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddUserParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddUserParameters.java
new file mode 100644
index 0000000..2ef7f6a
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddUserParameters.java
@@ -0,0 +1,28 @@
+package org.ovirt.engine.core.common.action;
+
+import org.ovirt.engine.core.common.businessentities.DbUser;
+
+public class AddUserParameters extends VdcActionParametersBase {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 5238452182295928273L;
+    private DbUser userToAdd;
+
+    public AddUserParameters(DbUser userToAdd) {
+        this.userToAdd = userToAdd;
+    }
+
+    public AddUserParameters() {
+    }
+
+    public void setUserToAdd(DbUser userToAdd) {
+        this.userToAdd = userToAdd;
+    }
+
+    public DbUser getUserToAdd() {
+        return userToAdd;
+    }
+
+}
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java
index 2ffc7cd..b6a77c5 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbGroupDAODbFacadeImpl.java
@@ -86,6 +86,9 @@
 
     @Override
     public void save(DbGroup group) {
+        if (Guid.isNullOrEmpty(group.getId())) {
+            group.setId(Guid.newGuid());
+        }
         insertOrUpdate(group, "InsertGroup");
     }
 
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java
index bc5c37a..813a514 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java
@@ -163,6 +163,7 @@
 
     @Override
     public void save(DbUser user) {
+        setIdIfNeeded(user);
         new 
SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertUser").execute(new 
DbUserMapSqlParameterSource(user));
     }
 
@@ -181,7 +182,14 @@
 
     @Override
     public void saveOrUpdate(DbUser user) {
+        setIdIfNeeded(user);
         new 
SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertOrUpdateUser").execute(new
 DbUserMapSqlParameterSource(user));
     }
 
+    private void setIdIfNeeded(DbUser user) {
+        if (Guid.isNullOrEmpty(user.getId())) {
+            user.setId(Guid.newGuid());
+        }
+    }
+
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
index ac0dd52..814d8a9 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResource.java
@@ -14,7 +14,7 @@
 import org.ovirt.engine.api.resource.GroupResource;
 import org.ovirt.engine.api.resource.GroupsResource;
 import org.ovirt.engine.core.aaa.DirectoryGroup;
-import org.ovirt.engine.core.common.action.DirectoryIdParameters;
+import org.ovirt.engine.core.common.action.AddGroupParameters;
 import org.ovirt.engine.core.common.action.IdParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.DbGroup;
@@ -163,10 +163,8 @@
                 .entity("No such group: " + group.getName() + " in directory " 
+ directoryName)
                 .build();
         }
-        DirectoryIdParameters parameters = new DirectoryIdParameters();
-        parameters.setDirectory(directoryName);
-        parameters.setId(directoryGroup.getId());
-        parameters.setNamespace(directoryGroup.getNamespace());
+        AddGroupParameters parameters = new AddGroupParameters();
+        parameters.setGroupToAdd(new DbGroup(directoryGroup));
         QueryIdResolver<Guid> resolver = new 
QueryIdResolver<>(VdcQueryType.GetDbGroupById, IdQueryParameters.class);
         return performCreate(VdcActionType.AddGroup, parameters, resolver, 
BaseResource.class);
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUsersResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUsersResource.java
index 699d8cd..cea6092 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUsersResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUsersResource.java
@@ -16,7 +16,7 @@
 import org.ovirt.engine.api.resource.UserResource;
 import org.ovirt.engine.api.resource.UsersResource;
 import org.ovirt.engine.core.aaa.DirectoryUser;
-import org.ovirt.engine.core.common.action.DirectoryIdParameters;
+import org.ovirt.engine.core.common.action.AddUserParameters;
 import org.ovirt.engine.core.common.action.IdParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.DbUser;
@@ -187,10 +187,7 @@
                     .entity("No such user: " + user.getUserName() + " in 
domain " + domain)
                     .build();
         }
-        DirectoryIdParameters parameters = new DirectoryIdParameters();
-        parameters.setDirectory(directoryUser.getDirectoryName());
-        parameters.setId(directoryUser.getId());
-        parameters.setNamespace(directoryUser.getNamespace());
+        AddUserParameters parameters = new AddUserParameters(new 
DbUser(directoryUser));
         QueryIdResolver<Guid> resolver = new 
QueryIdResolver<>(VdcQueryType.GetDbUserByUserId, IdQueryParameters.class);
         return performCreate(VdcActionType.AddUser, parameters, resolver, 
BaseResource.class);
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
index 02e9810..8020590 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendGroupsResourceTest.java
@@ -11,7 +11,7 @@
 import org.ovirt.engine.api.model.Fault;
 import org.ovirt.engine.api.model.Group;
 import org.ovirt.engine.core.aaa.DirectoryGroup;
-import org.ovirt.engine.core.common.action.DirectoryIdParameters;
+import org.ovirt.engine.core.common.action.AddGroupParameters;
 import org.ovirt.engine.core.common.action.IdParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.DbGroup;
@@ -208,9 +208,9 @@
         );
         setUpCreationExpectations(
             VdcActionType.AddGroup,
-            DirectoryIdParameters.class,
-            new String[] { "Directory", "Id" },
-            new Object[] { DOMAIN, EXTERNAL_IDS[0] },
+            AddGroupParameters.class,
+            new String[] { "GroupToAdd" },
+            new Object[] { new DbGroup(getDirectoryGroup(0)) },
             true,
             true,
             GUIDS[0],
@@ -247,9 +247,9 @@
         );
         setUpCreationExpectations(
             VdcActionType.AddGroup,
-            DirectoryIdParameters.class,
-            new String[] { "Directory", "Id" },
-            new Object[] { DOMAIN, EXTERNAL_IDS[0] },
+            AddGroupParameters.class,
+                new String[] { "GroupToAdd" },
+                new Object[] { new DbGroup(getDirectoryGroup(0)) },
             true,
             true,
             GUIDS[0],
@@ -305,9 +305,9 @@
         );
         setUpCreationExpectations(
             VdcActionType.AddGroup,
-            DirectoryIdParameters.class,
-            new String[] { "Directory", "Id" },
-            new Object[] { DOMAIN, EXTERNAL_IDS[0] },
+            AddGroupParameters.class,
+            new String[] { "GroupToAdd" },
+            new Object[] { new DbGroup(getDirectoryGroup(0)) },
             true,
             true,
             GUIDS[0],
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java
index 6d570fa..ca6f226 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUsersResourceTest.java
@@ -15,7 +15,7 @@
 import org.ovirt.engine.api.model.Group;
 import org.ovirt.engine.api.model.User;
 import org.ovirt.engine.core.aaa.DirectoryUser;
-import org.ovirt.engine.core.common.action.DirectoryIdParameters;
+import org.ovirt.engine.core.common.action.AddUserParameters;
 import org.ovirt.engine.core.common.action.IdParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.DbUser;
@@ -186,9 +186,9 @@
         );
         setUpCreationExpectations(
             VdcActionType.AddUser,
-            DirectoryIdParameters.class,
-            new String[] { "Directory", "Id" },
-            new Object[] { DOMAIN, EXTERNAL_IDS[0] },
+            AddUserParameters.class,
+            new String[] { "UserToAdd" },
+            new Object[] { new DbUser(getDirectoryUser(0)) },
             true,
             true,
             GUIDS[0],
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserListModel.java
index 40bc41e..27c5f45 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserListModel.java
@@ -5,11 +5,13 @@
 import java.util.Map;
 
 import org.ovirt.engine.core.common.VdcActionUtils;
+import org.ovirt.engine.core.common.action.AddGroupParameters;
+import org.ovirt.engine.core.common.action.AddUserParameters;
 import org.ovirt.engine.core.common.action.AttachEntityToTagParameters;
-import org.ovirt.engine.core.common.action.DirectoryIdParameters;
 import org.ovirt.engine.core.common.action.IdParameters;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.DbGroup;
 import org.ovirt.engine.core.common.businessentities.DbUser;
 import org.ovirt.engine.core.common.businessentities.Tags;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
@@ -455,21 +457,26 @@
 
         ArrayList<VdcActionType> actionsList = new 
ArrayList<VdcActionType>(items.size());
         ArrayList<VdcActionParametersBase> parametersList = new 
ArrayList<VdcActionParametersBase>(items.size());
+        VdcActionParametersBase parameters = null;
         for (DbUser item : items)
         {
             if (item.isGroup())
             {
                 actionsList.add(VdcActionType.AddGroup);
-
+                DbGroup grp = new DbGroup();
+                grp.setExternalId(item.getExternalId());
+                grp.setName(item.getFirstName());
+                grp.setNamespace(item.getNamespace());
+                grp.setId(item.getId());
+                grp.setDomain(item.getDomain());
+                grp.setActive(item.isActive());
+                parameters = new AddGroupParameters(grp);
             }
             else
             {
                 actionsList.add(VdcActionType.AddUser);
+                parameters = new AddUserParameters(item);
             }
-            DirectoryIdParameters parameters = new DirectoryIdParameters();
-            parameters.setDirectory(item.getDomain());
-            parameters.setId(item.getExternalId());
-            parameters.setNamespace(item.getNamespace());
             parametersList.add(parameters);
         }
 


-- 
To view, visit http://gerrit.ovirt.org/30207
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If841c8d30d6ab2c5d06b1637cde93cfc65598a96
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5
Gerrit-Owner: Yair Zaslavsky <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to