(self)
| 406 | return workspace_user_role_mapping_model is not None and role_permission_mapping_model is not None |
| 407 | |
| 408 | def one(self): |
| 409 | self.is_valid() |
| 410 | workspace_manage = is_workspace_manage(self.data.get("user_id"), self.data.get("workspace_id")) |
| 411 | is_x_pack_ee = self.is_x_pack_ee() |
| 412 | |
| 413 | query_set_dict = { |
| 414 | "default_sql": QuerySet(model=get_dynamics_model({"temp.id": models.CharField()})).filter( |
| 415 | **{"temp.id": self.data.get("knowledge_id")} |
| 416 | ), |
| 417 | "knowledge_custom_sql": QuerySet(model=get_dynamics_model({"knowledge.id": models.CharField()})).filter( |
| 418 | **{"knowledge.id": self.data.get("knowledge_id")} |
| 419 | ), |
| 420 | } |
| 421 | if not workspace_manage: |
| 422 | query_set_dict["workspace_user_resource_permission_query_set"] = QuerySet( |
| 423 | WorkspaceUserResourcePermission |
| 424 | ).filter( |
| 425 | auth_target_type="KNOWLEDGE", |
| 426 | workspace_id=self.data.get("workspace_id"), |
| 427 | user_id=self.data.get("user_id"), |
| 428 | ) |
| 429 | all_application_list = [str(adm.get("id")) for adm in self.list_application(with_valid=False)] |
| 430 | knowledge_dict = native_search( |
| 431 | query_set_dict, |
| 432 | select_string=get_file_content( |
| 433 | os.path.join( |
| 434 | PROJECT_DIR, |
| 435 | "apps", |
| 436 | "knowledge", |
| 437 | "sql", |
| 438 | "list_knowledge.sql" |
| 439 | if workspace_manage |
| 440 | else ("list_knowledge_user_ee.sql" if is_x_pack_ee else "list_knowledge_user.sql"), |
| 441 | ) |
| 442 | ), |
| 443 | with_search_one=True, |
| 444 | ) |
| 445 | workflow = {} |
| 446 | |
| 447 | if knowledge_dict.get("type") == 4: |
| 448 | from knowledge.models import KnowledgeWorkflow |
| 449 | |
| 450 | k = QuerySet(KnowledgeWorkflow).filter(knowledge_id=knowledge_dict.get("id")).first() |
| 451 | if k: |
| 452 | workflow["work_flow"] = k.work_flow |
| 453 | workflow["is_publish"] = k.is_publish |
| 454 | workflow["publish_time"] = k.publish_time |
| 455 | return { |
| 456 | **knowledge_dict, |
| 457 | **workflow, |
| 458 | "meta": json.loads(knowledge_dict.get("meta", "{}")), |
| 459 | "application_id_list": list( |
| 460 | filter( |
| 461 | lambda application_id: all_application_list.__contains__(application_id), |
| 462 | [ |
| 463 | str(application_knowledge_mapping.source_id) |
| 464 | for application_knowledge_mapping in QuerySet(ResourceMapping).filter( |
| 465 | source_type="APPLICATION", |
no test coverage detected