class DBService implements RolesProvider {

    List<GroupMember> getGroupMembersWithUpdatedDueDates(List<GroupMember> groupMembers, final String userAuthorityExpiry) {

        List<GroupMember> groupMembersWithUpdatedDueDates = new ArrayList<>();
        for (GroupMember groupMember : groupMembers) {

            boolean dueDateUpdated = false;

            if (ZMSUtils.isUserDomainPrincipal(groupMember.getMemberName(), zmsConfig.getUserDomainPrefix(),
                    zmsConfig.getAddlUserCheckDomainPrefixList())) {

                if (groupMember.getExpiration() != null && userAuthorityExpiry == null) {
                    groupMember.setExpiration(null);
                    dueDateUpdated = true;
                } else if (userAuthorityExpiry != null && updateUserAuthorityExpiry(groupMember, userAuthorityExpiry)) {
                    dueDateUpdated = true;
                }
            }

            if (dueDateUpdated) {
                groupMembersWithUpdatedDueDates.add(groupMember);
            }
        }

        return groupMembersWithUpdatedDueDates;
    }

    public  DBService(ObjectStore store, AuditLogger auditLogger, ZMSConfig zmsConfig, AuditReferenceValidator auditReferenceValidator);

}