Files
OSIT-AE-API-FastAPI/app/object_definitions/cms.py
Scott Idem 4629e1ec63 feat(site_domain): restore access_key enforcement for FQDN lookups
- api_crud_v3: strip falsy access_key values; restrict keyless queries
  to public domains (both site_access_key and site_domain_access_key
  must be NULL/empty); 75-line recursive block replaced with ~16 lines
- lib_sql_search: expand virtual 'access_key' field into priority SQL —
  site_access_key first, site_domain_access_key as fallback
- cms.py: add site_domain_access_key to site_domain searchable_fields
- docs: update frontend guide with access key behavior and examples
- e2e test: expand to cover all valid/invalid access key scenarios (15/15)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 14:46:33 -04:00

132 lines
5.0 KiB
Python

from app.models.page_models import *
from app.models.post_models import *
from app.models.post_comment_models import *
from app.models.site_models import *
from app.models.site_domain_models import *
cms_obj_li = {
'page': {
'tbl': 'page',
'tbl_default': 'page',
'tbl_update': 'page',
'mdl': Page_Base,
'mdl_default': Page_Base,
'mdl_in': Page_Base,
'mdl_out': Page_Base,
# Legacy V2 keys:
'table_name': 'page',
'tbl_name_update': 'page',
'base_name': Page_Base,
# V3 Search Security:
'searchable_fields': [
'id', 'account_id', 'site_id',
'page_id_random', 'account_id_random', 'site_id_random',
'code', 'name', 'title', 'description', 'content_html',
'enable', 'hide', 'priority', 'sort', 'group', 'notes',
'created_on', 'updated_on'
],
},
'post': {
'tbl': 'post',
'tbl_default': 'v_post',
'tbl_alt': 'v_post_detail',
'tbl_update': 'post',
'mdl': Post_Base,
'mdl_default': Post_Base,
'mdl_in': Post_Base,
'mdl_out': Post_Base,
# Legacy V2 keys:
'table_name': 'v_post',
'table_name_alt': 'v_post_detail',
'tbl_name_update': 'post',
'base_name': Post_Base,
'exp_default': [
'post_id_random',
'account_id_random',
'title', 'content',
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'id', 'account_id', 'person_id', 'user_id', 'external_person_id',
'post_id_random', 'account_id_random', 'organization_id_random',
'person_id_random', 'user_id_random', 'external_person_id', 'title', 'content',
'type_code', 'topic_code', 'category_code', 'tags', 'location',
'enable', 'hide', 'priority', 'sort', 'group', 'notes',
'archive_on', 'created_on', 'updated_on'
],
},
'post_comment': {
'tbl': 'post_comment',
'tbl_default': 'v_post_comment',
'tbl_alt': 'v_post_comment_detail',
'tbl_update': 'post_comment',
'mdl': Post_Comment_Base,
'mdl_default': Post_Comment_Base,
'mdl_in': Post_Comment_Base,
'mdl_out': Post_Comment_Base,
# Legacy V2 keys:
'table_name': 'v_post_comment',
'table_name_alt': 'v_post_comment_detail',
'tbl_name_update': 'post_comment',
'base_name': Post_Comment_Base,
'exp_default': [
'post_comment_id_random',
'account_id_random', 'post_id_random',
'content',
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# V3 Search Security:
'searchable_fields': [
'id', 'post_id', 'account_id', 'person_id', 'user_id', 'external_person_id',
'post_comment_id_random', 'account_id_random', 'post_id_random',
'person_id_random', 'user_id_random', 'content', 'enable', 'hide',
'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on'
],
},
'site': {
'tbl': 'site',
'tbl_default': 'site',
'tbl_update': 'site',
'mdl': Site_Base,
'mdl_default': Site_Base,
'mdl_in': Site_Base,
'mdl_out': Site_Base,
# Legacy V2 keys:
'table_name': 'site',
'tbl_name_update': 'site',
'base_name': Site_Base,
# V3 Search Security:
'searchable_fields': [
'site_id_random', 'account_id_random', 'code', 'name', 'tagline',
'description', 'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on'
],
},
'site_domain': {
'tbl': 'site_domain',
'tbl_default': 'v_site_domain',
'tbl_alt': 'v_site_domain_fqdn_id',
'tbl_update': 'site_domain',
'mdl': Site_Domain_Base,
'mdl_default': Site_Domain_Base,
'mdl_alt': Site_Domain_FQDN_ID_Base,
'mdl_in': Site_Domain_Base,
'mdl_out': Site_Domain_Base,
# Legacy V2 keys:
'table_name': 'v_site_domain',
'table_name_alt': 'v_site_domain_fqdn_id',
'tbl_name_update': 'site_domain',
'base_name': Site_Domain_Base,
'base_name_alt': Site_Domain_FQDN_ID_Base,
'public_read': True,
# V3 Search Security:
'searchable_fields': [
'id', 'account_id', 'site_id',
'id_random', 'account_id_random', 'site_id_random',
'fqdn', 'access_key', 'site_access_key', 'site_domain_access_key',
'enable', 'created_on', 'updated_on'
],
},
}