Coverage for ckanext/udc/organization/auth.py: 28%
36 statements
« prev ^ index » next coverage.py v7.7.1, created at 2026-03-30 22:15 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2026-03-30 22:15 +0000
1"""Authorization functions for organization management actions."""
2from ckan.types import Context, AuthResult
3from ckan import model
6def _is_sysadmin(context: Context) -> bool:
7 user = context.get("user")
8 if not user:
9 return False
10 user_obj = model.User.get(user)
11 return bool(user_obj and user_obj.sysadmin)
14def udc_organization_list(context: Context, data_dict: dict) -> AuthResult:
15 if _is_sysadmin(context):
16 return {"success": True}
17 return {"success": False, "msg": "Only sysadmins can list organizations."}
20def udc_organization_packages_list(context: Context, data_dict: dict) -> AuthResult:
21 if _is_sysadmin(context):
22 return {"success": True}
23 return {"success": False, "msg": "Only sysadmins can list organization packages."}
26def udc_organization_packages_ids(context: Context, data_dict: dict) -> AuthResult:
27 if _is_sysadmin(context):
28 return {"success": True}
29 return {"success": False, "msg": "Only sysadmins can list organization package ids."}
32def udc_organization_packages_delete(context: Context, data_dict: dict) -> AuthResult:
33 if _is_sysadmin(context):
34 return {"success": True}
35 return {"success": False, "msg": "Only sysadmins can delete organization packages."}
38def udc_deleted_organization_list(context: Context, data_dict: dict) -> AuthResult:
39 if _is_sysadmin(context):
40 return {"success": True}
41 return {"success": False, "msg": "Only sysadmins can list deleted organizations."}
44def udc_organization_delete(context: Context, data_dict: dict) -> AuthResult:
45 if _is_sysadmin(context):
46 return {"success": True}
47 return {"success": False, "msg": "Only sysadmins can delete organizations."}
50def udc_purge_deleted_organizations(context: Context, data_dict: dict) -> AuthResult:
51 if _is_sysadmin(context):
52 return {"success": True}
53 return {"success": False, "msg": "Only sysadmins can purge deleted organizations."}