Martin Peřina has uploaded a new change for review. Change subject: core: Fix group id on updating cache of users ......................................................................
core: Fix group id on updating cache of users When db users cache is updated in refreshAllUsers, also user groups membership is updated. If some group is not in local db, by mistake externald id of group is set to user groups instead of internal one. This patch sets empty GUID for groups that are not stored in local db. Change-Id: I84d04420bc508f482c6ed4466e6937d8741bfe62 Bug-Url: https://bugzilla.redhat.com/1073235 Signed-off-by: Martin Perina <mper...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java 1 file changed, 12 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/25452/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java index 5965087..37ba9ad 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/DbUserCacheManager.java @@ -17,7 +17,9 @@ import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.utils.ExternalId; +import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dao.DbGroupDAO; import org.ovirt.engine.core.dao.DbUserDAO; import org.ovirt.engine.core.utils.log.Log; import org.ovirt.engine.core.utils.log.LogFactory; @@ -213,19 +215,23 @@ StringBuilder groupNamesBuffer = new StringBuilder(); StringBuilder groupIdsBuffer = new StringBuilder(); boolean first = true; + DbGroupDAO groupDao = DbFacade.getInstance().getDbGroupDao(); for (DirectoryGroup directoryGroup : directoryUser.getGroups()) { if (!first) { groupNamesBuffer.append(','); groupIdsBuffer.append(','); } DbGroup dbGroup = groupsMap.get(directoryGroup.getId()); - if (dbGroup != null) { - groupNamesBuffer.append(dbGroup.getName()); - groupIdsBuffer.append(dbGroup.getExternalId()); - } else { - groupNamesBuffer.append(directoryGroup.getName()); - groupIdsBuffer.append(directoryGroup.getId()); + if (dbGroup == null) { + dbGroup = groupDao.getByExternalId(dbUser.getDomain(), directoryGroup.getId()); } + if (dbGroup == null) { + // group is not in map or db + groupIdsBuffer.append(Guid.Empty); + } else { + groupIdsBuffer.append(dbGroup.getId()); + } + groupNamesBuffer.append(directoryGroup.getName()); first = false; } String groupNames = groupNamesBuffer.toString(); -- To view, visit http://gerrit.ovirt.org/25452 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I84d04420bc508f482c6ed4466e6937d8741bfe62 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Martin Peřina <mper...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches