diff options
| author | P. Christeas <p_christ@hol.gr> | 2010-10-12 13:38:58 +0300 |
|---|---|---|
| committer | P. Christeas <p_christ@hol.gr> | 2010-10-12 13:38:58 +0300 |
| commit | c52b73b587971da28020c47dcb5395a82e2b20ea (patch) | |
| tree | af21b213d95496ab09d7ff8e211ca0f8c9130863 /addons/document_webdav | |
| parent | 402d407b2c3f630ca57d31f72b48ed397fec1119 (diff) | |
doc webdav: initial override of nodes.py
bzr revid: p_christ@hol.gr-20101012103858-hykw2g2ezbwaobmn
Diffstat (limited to 'addons/document_webdav')
| -rw-r--r-- | addons/document_webdav/__init__.py | 4 | ||||
| -rw-r--r-- | addons/document_webdav/dav_fs.py | 1 | ||||
| -rw-r--r-- | addons/document_webdav/document_webdav.py | 47 | ||||
| -rw-r--r-- | addons/document_webdav/nodes.py | 57 |
4 files changed, 108 insertions, 1 deletions
diff --git a/addons/document_webdav/__init__.py b/addons/document_webdav/__init__.py index 69312668a74..ac417e18087 100644 --- a/addons/document_webdav/__init__.py +++ b/addons/document_webdav/__init__.py @@ -21,3 +21,7 @@ import webdav import webdav_server + +import document_webdav + +#eof
\ No newline at end of file diff --git a/addons/document_webdav/dav_fs.py b/addons/document_webdav/dav_fs.py index 8cd00da2a12..9e04673555a 100644 --- a/addons/document_webdav/dav_fs.py +++ b/addons/document_webdav/dav_fs.py @@ -37,7 +37,6 @@ from DAV.iface import * import urllib from DAV.davcmd import copyone, copytree, moveone, movetree, delone, deltree -from document.nodes import node_res_dir, node_res_obj from cache import memoize from tools import misc CACHE_SIZE=20000 diff --git a/addons/document_webdav/document_webdav.py b/addons/document_webdav/document_webdav.py new file mode 100644 index 00000000000..2db183e4ec6 --- /dev/null +++ b/addons/document_webdav/document_webdav.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from osv import osv, fields +import nodes + +class document_davdir(osv.osv): + _inherit = 'document.directory' + + def get_node_class(self, cr, uid, ids, dbro=None, context=None): + # Note: in this function, nodes come from document_webdav/nodes.py ! + if dbro is None: + dbro = self.browse(cr, uid, ids, context=context) + + if dbro.type == 'directory': + return nodes.node_dir + elif dbro.type == 'ressource': + assert not dbro.ressource_parent_type_id, \ + "resource and parent_id at #%d: %r" % (dbro.id, dbro.ressource_parent_type_id) + return nodes.node_res_dir + else: + raise ValueError("dir node for %s type", dbro.type) + + def _prepare_context(self, cr, uid, nctx, context): + nctx.node_file_class = nodes.node_file + return + +document_davdir() +#eof
\ No newline at end of file diff --git a/addons/document_webdav/nodes.py b/addons/document_webdav/nodes.py new file mode 100644 index 00000000000..6e9d85a0ae3 --- /dev/null +++ b/addons/document_webdav/nodes.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + + +from document import nodes + +class node_acl_mixin(object): + def _get_dav_owner(self, cr): + return self.uuser + + def _get_dav_group(self, cr): + return self.ugroup + + def _get_dav_supported_privilege_set(self, cr): + return '' # TODO + + def _get_dav_current_user_privilege_set(self, cr): + return '' # TODO + +class node_dir(node_acl_mixin, nodes.node_dir): + DAV_PROPS = { "DAV:": ('owner', 'group', + 'supported-privilege-set', + 'current-user-privilege-set'), + } + DAV_M_NS = { "DAV:" : '_get_dav',} + http_options = { 'DAV': ['access-control',] } + + +class node_file(node_acl_mixin, nodes.node_file): + DAV_PROPS = { "DAV:": ('owner', 'group', + 'supported-privilege-set', + 'current-user-privilege-set'), + } + DAV_M_NS = { "DAV:" : '_get_dav',} + http_options = { 'DAV': ['access-control', ] } + pass + + +#eof |
