def _calculate_action()

in azext_edge/edge/providers/orchestration/permissions.py [0:0]


    def _calculate_action(self, permission: dict, valid_permissions: frozenset) -> PermissionState:
        action_result = False
        negate_action_result = False

        for action in permission.get("actions", []):
            if action.lower() in valid_permissions:
                action_result = True
                break

        for not_action in permission.get("notActions", []):
            if not_action.lower() in valid_permissions:
                negate_action_result = True
                break

        if action_result and not negate_action_result:
            return PermissionState.ActionAllowed
        if negate_action_result:
            return PermissionState.ActionDenied
        return PermissionState.ActionUndefined