mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 10:53:02 +00:00 
			
		
		
		
	
		
			
	
	
		
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from flask import request | ||
|  | from flask_login import current_user  # type: ignore | ||
|  | from flask_restful import Resource, reqparse  # type: ignore | ||
|  | 
 | ||
|  | from libs.helper import extract_remote_ip | ||
|  | from libs.login import login_required | ||
|  | from services.billing_service import BillingService | ||
|  | 
 | ||
|  | from .. import api | ||
|  | from ..wraps import account_initialization_required, only_edition_cloud, setup_required | ||
|  | 
 | ||
|  | 
 | ||
|  | class ComplianceApi(Resource): | ||
|  |     @setup_required | ||
|  |     @login_required | ||
|  |     @account_initialization_required | ||
|  |     @only_edition_cloud | ||
|  |     def get(self): | ||
|  |         parser = reqparse.RequestParser() | ||
|  |         parser.add_argument("doc_name", type=str, required=True, location="args") | ||
|  |         args = parser.parse_args() | ||
|  | 
 | ||
|  |         ip_address = extract_remote_ip(request) | ||
|  |         device_info = request.headers.get("User-Agent", "Unknown device") | ||
|  | 
 | ||
|  |         return BillingService.get_compliance_download_link( | ||
|  |             doc_name=args.doc_name, | ||
|  |             account_id=current_user.id, | ||
|  |             tenant_id=current_user.current_tenant_id, | ||
|  |             ip=ip_address, | ||
|  |             device_info=device_info, | ||
|  |         ) | ||
|  | 
 | ||
|  | 
 | ||
|  | api.add_resource(ComplianceApi, "/compliance/download") |