Projekt

Obecné

Profil

« Předchozí | Další » 

Revize e77c14f9

Přidáno uživatelem Michal Seják před téměř 4 roky(ů)

Re #8706 - Fixed a bug where certificates without usages would not be returned when the usage filter was unspecified. Added a related integration test.

Zobrazit rozdíly:

src/dao/certificate_repository.py
269 269
        try:
270 270
            values = []
271 271
            values += list(target_types)
272
            values += list(target_usages)
273 272

  
274 273
            sql = (
275 274
                f"SELECT * "
276 275
                f"FROM {TAB_CERTIFICATES} a "
277 276
                f"WHERE (a.{COL_DELETION_DATE} IS NULL OR a.{COL_DELETION_DATE} = '') "
278 277
                f"AND a.{COL_TYPE_ID} IN ({','.join('?' * len(target_types))}) "
279
                f"AND (SELECT COUNT(*) FROM {TAB_CERTIFICATE_USAGES} "
280
                f"WHERE {COL_CERTIFICATE_ID} = a.{COL_ID} "
281
                f"AND {COL_USAGE_TYPE_ID} IN ({','.join('?' * len(target_usages))}) "
282
                f") > 0 "
283 278
            )
279
            
280
            if target_usages is not None:
281
                sql += f"AND (SELECT COUNT(*) FROM {TAB_CERTIFICATE_USAGES} WHERE {COL_CERTIFICATE_ID} = a.{COL_ID} " \
282
                    f"AND {COL_USAGE_TYPE_ID} IN ({','.join('?' * len(target_usages))})) > 0 "
283
                values += list(target_usages)
284 284

  
285 285
            if target_cn_substring is not None:
286 286
                sql += f" AND a.{COL_COMMON_NAME} LIKE '%' || ? || '%'"
......
728 728
        try:
729 729
            values = [issuer_id, issuer_id]
730 730
            values += list(target_types)
731
            values += list(target_usages)
732 731

  
733 732
            sql = (
734 733
                f"SELECT * "
......
736 735
                f"WHERE (a.{COL_DELETION_DATE} IS NULL OR a.{COL_DELETION_DATE} = '') "
737 736
                f"AND a.{COL_PARENT_ID} = ? AND a.{COL_ID} != ? "
738 737
                f"AND a.{COL_TYPE_ID} IN ({','.join('?' * len(target_types))}) "
739
                f"AND (SELECT COUNT(*) FROM {TAB_CERTIFICATE_USAGES} "
740
                f"WHERE {COL_CERTIFICATE_ID} = a.{COL_ID} "
741
                f"AND {COL_USAGE_TYPE_ID} IN ({','.join('?' * len(target_usages))}) "
742
                f") > 0 "
738
                
743 739
            )
740
            
741
            if target_usages is not None:
742
                sql += f"AND (SELECT COUNT(*) FROM {TAB_CERTIFICATE_USAGES} WHERE {COL_CERTIFICATE_ID} = a.{COL_ID} " \
743
                    f"AND {COL_USAGE_TYPE_ID} IN ({','.join('?' * len(target_usages))})) > 0 "
744
                values += list(target_usages)
744 745

  
745 746
            if target_cn_substring is not None:
746 747
                sql += f" AND a.{COL_COMMON_NAME} LIKE '%' || ? || '%'"
747

  
748 748
                values += [target_cn_substring]
749 749

  
750 750
            if page is not None and per_page is not None:

Také k dispozici: Unified diff