DBService implements RolesProvider { boolean updateRoleMemberDisabledState(ResourceContext ctx, ObjectStoreConnection con, List<RoleMember> roleMembers, final String domainName, final String roleName, final String principal, final String auditRef, final String caller) { boolean bDataChanged = false; for (RoleMember roleMember : roleMembers) { try { if (!con.updateRoleMemberDisabledState(domainName, roleName, roleMember.getMemberName(), principal, roleMember.getSystemDisabled(), auditRef)) { LOG.error("unable to update member {}", roleMember.getMemberName()); continue; } } catch (Exception ex) { LOG.error("unable to update member {} error: {}", roleMember.getMemberName(), ex.getMessage()); continue; } StringBuilder auditDetails = new StringBuilder(ZMSConsts.STRING_BLDR_SIZE_DEFAULT); auditLogRoleMember(auditDetails, roleMember, true); auditLogRequest(ctx, domainName, auditRef, caller, ZMSConsts.HTTP_PUT, roleName, auditDetails.toString()); bDataChanged = true; } return bDataChanged; } DBService(ObjectStore store, AuditLogger auditLogger, ZMSConfig zmsConfig, AuditReferenceValidator auditReferenceValidator); DomainRoleMembers listOverdueReviewRoleMembers(String domainName); @Override List<Role> getRolesByDomain(String domain); ResourceAccessList getResourceAccessList(String principal, String action); AthenzDomain getAthenzDomain(final String domainName, boolean masterCopy); Quota getQuota(String domainName); void executePutRoleSystemMeta(ResourceContext ctx, final String domainName, final String roleName,
           RoleSystemMeta meta, final String attribute, final String auditRef, final String caller); void executePutGroupSystemMeta(ResourceContext ctx, final String domainName, final String groupName,
                                          GroupSystemMeta meta, final String attribute, final String auditRef); void executePutServiceIdentitySystemMeta(ResourceContext ctx, String domainName, String serviceName,
            ServiceIdentitySystemMeta meta, String attribute, String auditRef, String caller); void executePutRoleMeta(ResourceContext ctx, String domainName, String roleName, Role originalRole,
                                   RoleMeta meta, String auditRef, String caller); void executePutGroupMeta(ResourceContext ctx, final String domainName, final String groupName,
                                    GroupMeta meta, final String auditRef); Set<String> getPendingMembershipApproverRoles(int delayDays); Set<String> getPendingGroupMembershipApproverRoles(int delayDays); Map<String, DomainRoleMember> getRoleExpiryMembers(int delayDays); Map<String, DomainRoleMember> getRoleReviewMembers(int delayDays); Map<String, DomainGroupMember> getGroupExpiryMembers(int delayDays); void processExpiredPendingMembers(int pendingRoleMemberLifespan, final String monitorIdentity); void processExpiredPendingGroupMembers(int pendingGroupMemberLifespan, final String monitorIdentity); static int AUDIT_TYPE_ROLE; static int AUDIT_TYPE_POLICY; static int AUDIT_TYPE_SERVICE; static int AUDIT_TYPE_DOMAIN; static int AUDIT_TYPE_ENTITY; static int AUDIT_TYPE_TENANCY; static int AUDIT_TYPE_TEMPLATE; static int AUDIT_TYPE_GROUP; }
@Test public void testUpdateRoleMemberDisabledState() { final String domainName = "test-domain"; final String roleName = "role-name"; final String adminUser = "user.admin"; ObjectStoreConnection con = Mockito.mock(ObjectStoreConnection.class); Mockito.when(con.updateRoleMemberDisabledState(domainName, roleName, "user.john", "user.admin", 1, "auditref")) .thenReturn(true) .thenReturn(false) .thenThrow(new ResourceException(500, "invalid operation")); RoleMember roleMember = new RoleMember().setMemberName("user.john").setSystemDisabled(1); List<RoleMember> roleMembers = new ArrayList<>(); roleMembers.add(roleMember); assertTrue(zms.dbService.updateRoleMemberDisabledState(null, con, roleMembers, domainName, roleName, adminUser, "auditref", "unit-test")); assertFalse(zms.dbService.updateRoleMemberDisabledState(null, con, roleMembers, domainName, roleName, adminUser, "auditref", "unit-test")); assertFalse(zms.dbService.updateRoleMemberDisabledState(null, con, roleMembers, domainName, roleName, adminUser, "auditref", "unit-test")); }