pki_ca/ca_core/property.py

43 lines
1.2 KiB
Python

from db_logging import log_change
from entity import ensure_entity_active
def set_property(cursor, entity_id, property_name):
"""
Revoked entities are immutable: cannot add properties.
Schema: property(id, property_name)
"""
ensure_entity_active(cursor, entity_id)
cursor.execute(
"""
INSERT INTO property (id, property_name)
VALUES (%s, %s)
ON CONFLICT (id, property_name) DO NOTHING
""",
(entity_id, property_name),
)
log_change(cursor, f"Set property '{property_name}' for entity {entity_id}")
def get_properties(cursor, entity_id):
cursor.execute(
"SELECT property_name FROM property WHERE id = %s",
(entity_id,),
)
rows = cursor.fetchall()
return [r["property_name"] for r in rows]
def delete_property(cursor, entity_id, property_name):
"""
Revoked entities are immutable: cannot delete properties.
"""
ensure_entity_active(cursor, entity_id)
cursor.execute(
"DELETE FROM property WHERE id = %s AND property_name = %s",
(entity_id, property_name),
)
log_change(cursor, f"Deleted property '{property_name}' for entity {entity_id}")