From 5c6a7fe252d636069176574b010ebd44b9614213 Mon Sep 17 00:00:00 2001 From: zyutong Date: Sun, 19 May 2024 21:24:22 +0800 Subject: [PATCH] add username filter when query users --- .../osis/ceph/service/impl/CephOsisService.java | 12 ++++++++---- .../com/vmware/osis/ceph/utils/CephConstants.java | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/vmware-ose-osis-ceph-ri/osis-core/src/main/java/com/vmware/osis/ceph/service/impl/CephOsisService.java b/vmware-ose-osis-ceph-ri/osis-core/src/main/java/com/vmware/osis/ceph/service/impl/CephOsisService.java index 2c8e68d..809ed59 100644 --- a/vmware-ose-osis-ceph-ri/osis-core/src/main/java/com/vmware/osis/ceph/service/impl/CephOsisService.java +++ b/vmware-ose-osis-ceph-ri/osis-core/src/main/java/com/vmware/osis/ceph/service/impl/CephOsisService.java @@ -130,6 +130,7 @@ public PageOfUsers queryUsers(long offset, long limit, String filter) { String tenantId = kvMap.get(OSIS_TENANT_ID); String cdTenantId = kvMap.get(OSIS_CD_TENANT_ID); String userId = kvMap.get(OSIS_USER_ID); + String username = kvMap.get(OSIS_USERNAME); String cdUserId = kvMap.get(OSIS_CD_USER_ID); String canonicalUserId = kvMap.get(OSIS_CANONICAL_USER_ID); String displayName = kvMap.get(OSIS_DISPLAY_NAME); @@ -147,7 +148,7 @@ public PageOfUsers queryUsers(long offset, long limit, String filter) { List osisUsers = uids.stream().map(tenantUid -> rgwAdmin.getUserInfo(tenantUid)) .filter(Optional::isPresent).map(u -> ModelConverter.toOsisUser(u.get())).collect(Collectors.toList()); - osisUsers = filterOsisUsers(osisUsers, displayName, cdTenantId, cdUserId, activeStr, null); + osisUsers = filterOsisUsers(osisUsers, displayName, cdTenantId, cdUserId, username, activeStr, null); return paginate(offset, limit, new PageOfUsers(), osisUsers); } @@ -185,6 +186,7 @@ public PageOfS3Credentials queryS3Credentials(long offset, long limit, String fi String tenantId = kvMap.get(OSIS_TENANT_ID); String cdTenantId = kvMap.get(OSIS_CD_TENANT_ID); String userId = kvMap.get(OSIS_USER_ID); + String username = kvMap.get(OSIS_USERNAME); String cdUserId = kvMap.get(OSIS_CD_USER_ID); String activeStr = kvMap.get(OSIS_ACTIVE); String accessKey = kvMap.get(OSIS_ACCESS_KEY); @@ -200,20 +202,22 @@ public PageOfS3Credentials queryS3Credentials(long offset, long limit, String fi List osisUsers = uids.stream().map(tenantUid -> rgwAdmin.getUserInfo(tenantUid)) .filter(Optional::isPresent) .map(u -> ModelConverter.toOsisUser(u.get())).collect(Collectors.toList()); - osisUsers = filterOsisUsers(osisUsers, null, cdTenantId, cdUserId, activeStr, accessKey); + osisUsers = filterOsisUsers(osisUsers, null, cdTenantId, cdUserId, username, activeStr, accessKey); List s3Credentials = osisUsers.stream().flatMap(osisUser -> osisUser.getOsisS3Credentials().stream().filter(c -> StringUtils.isBlank(accessKey) || c.getAccessKey().equals(accessKey))).collect(Collectors.toList()); return paginate(offset, limit, new PageOfS3Credentials(), s3Credentials); } - private List filterOsisUsers(List osisUsers, String displayName, String cdTenantId, String cdUserId, String activeStr, String accessKey) { + private List filterOsisUsers(List osisUsers, String displayName, String cdTenantId, String cdUserId, String username, String activeStr, String accessKey) { osisUsers = osisUsers.stream().filter(osisUser -> (StringUtils.isBlank(accessKey) || osisUser.getOsisS3Credentials().stream().anyMatch(c -> c.getAccessKey().equals(accessKey))) && (StringUtils.isBlank(displayName) || displayName.equals(osisUser.getUsername())) && (StringUtils.isBlank(activeStr) || osisUser.getActive() == Boolean.parseBoolean(activeStr)) && (StringUtils.isBlank(cdTenantId) || cdTenantId.equals(osisUser.getCdTenantId())) - && (StringUtils.isBlank(cdUserId) || cdUserId.equals(osisUser.getCdUserId()))) + && (StringUtils.isBlank(cdUserId) || cdUserId.equals(osisUser.getCdUserId())) + && (StringUtils.isBlank(username) || username.equals(osisUser.getUsername())) + ) .collect(Collectors.toList()); return osisUsers; } diff --git a/vmware-ose-osis-ceph-ri/osis-core/src/main/java/com/vmware/osis/ceph/utils/CephConstants.java b/vmware-ose-osis-ceph-ri/osis-core/src/main/java/com/vmware/osis/ceph/utils/CephConstants.java index fb63d4f..deebb59 100644 --- a/vmware-ose-osis-ceph-ri/osis-core/src/main/java/com/vmware/osis/ceph/utils/CephConstants.java +++ b/vmware-ose-osis-ceph-ri/osis-core/src/main/java/com/vmware/osis/ceph/utils/CephConstants.java @@ -29,6 +29,7 @@ private CephConstants() { public static final String OSIS_TENANT_ID = "tenant_id"; public static final String OSIS_CD_TENANT_ID = "cd_tenant_id"; public static final String OSIS_USER_ID = "user_id"; + public static final String OSIS_USERNAME = "username"; public static final String OSIS_CD_USER_ID = "cd_user_id"; public static final String OSIS_CANONICAL_USER_ID = "canonical_user_id"; public static final String OSIS_DISPLAY_NAME = "display_name";