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. 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 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 9 files changed, 62 insertions(+), 181 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/39/30039/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..a9c2b81 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,19 @@ 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 +31,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 +41,20 @@ // 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()); + Guid id = Guid.newGuid(); if (dbGroup == null) { - dbGroup = DirectoryUtils.mapGroupRecordToDbGroup(getParameters().getDirectory(), groupRecord); - dbGroup.setId(Guid.newGuid()); - dao.save(dbGroup); + groupToAdd.setId(id); + dao.save(groupToAdd); } else { - Guid id = dbGroup.getId(); - dbGroup = DirectoryUtils.mapGroupRecordToDbGroup(getParameters().getDirectory(), groupRecord); - dbGroup.setId(id); - dao.update(dbGroup); + groupToAdd.setId(id); + dao.update(groupToAdd); } // 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..ee0ce24 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,6 +7,7 @@ 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.AddUserParameters; import org.ovirt.engine.core.common.action.DirectoryIdParameters; import org.ovirt.engine.core.common.action.PermissionsOperationsParameters; import org.ovirt.engine.core.common.action.VdcActionType; @@ -105,7 +106,7 @@ user = existing; } else { - user = addUser(id, directory, externalId, user.getNamespace()); + user = addUser(user); if (user == 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); } 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..e1a746b 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 @@ -11,6 +11,7 @@ import org.ovirt.engine.core.aaa.AuthzUtils; import org.ovirt.engine.core.aaa.DirectoryUtils; import org.ovirt.engine.core.common.businessentities.DbUser; +import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.extensions.mgr.ExtensionProxy; import org.ovirt.engine.core.utils.collections.MultiValueMapUtils; @@ -29,6 +30,9 @@ //Initialize the entries based on authz in the map for (DbUser dbUser : dbUsers) { + if (Guid.isNullOrEmpty(dbUser.getId())) { + dbUser.setId(Guid.newGuid()); + } MultiValueMapUtils.addToMap(dbUser.getDomain(), dbUser, dbUsersPerAuthz); if (!authzToNamespaceToUserIds.containsKey(dbUser.getDomain())) { authzToNamespaceToUserIds.put(dbUser.getDomain(), new HashMap<String, Set<String>>()); @@ -64,14 +68,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/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 7f14465..65b4913 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; @@ -164,10 +164,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 751d092..9db0212 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; @@ -188,10 +188,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 021045b..9bc8e48 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 cd5da90..cdbb4ef 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; @@ -449,21 +451,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/30039 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If841c8d30d6ab2c5d06b1637cde93cfc65598a96 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
