From b49a62609fe789d2dd1fb22614032049c28417ba Mon Sep 17 00:00:00 2001 From: Laurent Mignon Date: Fri, 2 Sep 2016 12:39:24 +0200 Subject: [PATCH] Validate cmis.folder name before create --- cmis/models/cmis_folder.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cmis/models/cmis_folder.py b/cmis/models/cmis_folder.py index d210c61..8c6616e 100644 --- a/cmis/models/cmis_folder.py +++ b/cmis/models/cmis_folder.py @@ -3,6 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from openerp import api, models +from openerp.exceptions import UserError class CmisFolder(models.AbstractModel): @@ -12,11 +13,21 @@ class CmisFolder(models.AbstractModel): _inherit = 'cmis.object.ref' _cmis_object_type = 'cmis:folder' + @classmethod + def validate_cmis_name(cls, name): + INVALID = set('/\.') + for c in INVALID: + if c in name: + raise UserError("Invalid character '%s' for cmis " + "found in'%s'" % (c, name)) + @api.multi def _create_cmis_object(self, backend, parent_cmis_object): self.ensure_one() props = self._get_cmis_create_object_properties() repo = backend.check_auth() + name = self.cmis_content_name + self.validate_cmis_name(name) new_folder = repo.createFolder( parent_cmis_object, self.cmis_content_name, properties=props) return new_folder.getProperties()['cmis:objectId']