Revize e77c14f9
Přidáno uživatelem Michal Seják před téměř 4 roky(ů)
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
Re #8706 - Fixed a bug where certificates without usages would not be returned when the usage filter was unspecified. Added a related integration test.