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

1"""Authorization functions for organization management actions.""" 

2from ckan.types import Context, AuthResult 

3from ckan import model 

4 

5 

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) 

12 

13 

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."} 

18 

19 

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."} 

24 

25 

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."} 

30 

31 

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."} 

36 

37 

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."} 

42 

43 

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."} 

48 

49 

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."}