# © 2019 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). import base64 from odoo import http from odoo.http import request from odoo.addons.web.controllers.main import serialize_exception, content_disposition class AlfrescoBinary(http.Controller): @http.route('/web/binary/download_alfresco', type='http', auth="user") @serialize_exception def download_alfresco_document(self, id_alfresco, **kwargs): """ Téléchargement des fichiers depuis alfresco. :param str id_alfresco: id de la ressource @return: :class:`werkzeug.wrappers.Response` """ doc = request.env['alfresco.partner.files'].search( [['file_id', '=', id_alfresco]]).alfresco_get_doc(id_alfresco) filecontent = base64.b64decode( doc['base64NodeContent']) if not filecontent: return request.not_found() else: return request.make_response(filecontent, [ ('Content-Type', 'application/octet-stream'), ('Content-Disposition', content_disposition(doc['name']))])