Commit f4bf38ca authored by Frank Bergmann's avatar Frank Bergmann

- OpenACS 5.9

parent c252259f
......@@ -2,10 +2,10 @@
<message_catalog package_key="oacs-dav" locale="ru_RU" charset="utf-8">
<msg key="Disable">Запретить</msg>
<msg key="Disable_Folders">Запретить для выбранных папок</msg>
<msg key="Disable_Folders">Заблокировать Выбранные Папки</msg>
<msg key="Disabled">Запрещено</msg>
<msg key="Enable">Разрешить</msg>
<msg key="Enable_Folders">Разрешить для выбранных папок</msg>
<msg key="Enable_Folders">Разрешить Выбранные Папки</msg>
<msg key="Enabled">Разрешено</msg>
<msg key="Folder_Name">Название папки</msg>
<msg key="Folder_URL">URL папки</msg>
......@@ -13,6 +13,6 @@
<msg key="Folders_Enabled">Для выбранных папок разрешена поддержка WebDAV.</msg>
<msg key="Package_Name">Название пакета</msg>
<msg key="Package_Type">Тип пакета</msg>
<msg key="Status">Состояние</msg>
<msg key="Status">Статус</msg>
<msg key="WebDAV_Folder_Administration">Управление папкой WebDAV</msg>
</message_catalog>
......@@ -11,13 +11,13 @@
<version name="1.2.0d3" url="http://openacs.org/repository/download/apm/oacs-dav-1.2.0d3.apm">
<owner url="mailto:dave@thedesignexperience.org">Dave Bauer</owner>
<summary>Provides services to enable webDAV access to content repository items.</summary>
<release-date>2013-09-08</release-date>
<release-date>2015-10-04</release-date>
<vendor>OpenACS</vendor>
<maturity>1</maturity>
<description format="text/html">An interface to the tDAV webDAV package. oacs-dav provides services to offer webDAV access to content repository data.</description>
<provides url="oacs-dav" version="1.2.0d3"/>
<requires url="acs-kernel" version="5.8.1"/>
<requires url="acs-kernel" version="5.9.0"/>
<callbacks>
<callback type="after-install" proc="oacs_dav::install::package_install"/>
......
......@@ -42,3 +42,9 @@ ns_register_proc MKCOL ${url} oacs_dav::handle_request
ns_register_proc MOVE ${url} oacs_dav::handle_request
ns_register_proc LOCK ${url} oacs_dav::handle_request
ns_register_proc UNLOCK ${url} oacs_dav::handle_request
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
......@@ -248,4 +248,9 @@ ad_proc -private oacs_dav::install::upgrade {
oacs_dav::install::create_dav_mkcol_type_sc
}
}
}
\ No newline at end of file
}
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
......@@ -1253,3 +1253,9 @@ ad_proc oacs_dav::impl::content_revision::unlock {} {
return [list $ret_code $body]
}
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
......@@ -1648,3 +1648,9 @@ if {![nsv_exists tdav_filters_installed filters_installed]} {
}
}
}
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
......@@ -103,4 +103,9 @@ aa_register_case oacs_dav_mkcol {
}
}
\ No newline at end of file
}
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
......@@ -25,4 +25,9 @@ foreach id $folder_id {
}
util_user_message -message [_ oacs-dav.Folders_Disabled]
ad_returnredirect "."
\ No newline at end of file
ad_returnredirect "."
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
......@@ -25,4 +25,9 @@ foreach id $folder_id {
}
util_user_message -message [_ oacs-dav.Folders_Enabled]
ad_returnredirect "."
\ No newline at end of file
ad_returnredirect "."
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
......@@ -45,3 +45,9 @@ db_multirow -extend {folder_url package_key package_name status} folders get_fol
set title [_ oacs-dav.WebDAV_Folder_Administration]
set context $title
ad_return_template
# Local variables:
# mode: tcl
# tcl-indent-level: 4
# indent-tabs-mode: nil
# End:
<property name="context">{/doc/oacs-dav {webDAV Support}} {OpenACS WebDAV Support}</property>
<property name="doc(title)">OpenACS WebDAV Support</property>
<master>
<h1>OpenACS WebDAV Support</h1>
<h2>Introduction</h2>
<p>This package implements a WebDAV interface to the OpenACS
Content Repository. In addition to generic access to content items,
there is a service-contract interface so packages can define custom
handlers for WebDAV methods for objects that belong to that
package.</p>
<h2>Installation</h2>
<p>Install through the APM. If you install file-storage, WebDAV
support is installed automatically. In addtion you should check the
tDAV specific configuration parameters to the AOLserver
configuration file. The default parameters work fine, they will
create webdav URLs like <i>yoursite/</i>dav/*</p>
<p>You can visit the <a href="/webdav-support/">/webdav-support/</a> page to control webdav
access on a per-folder basis. Packages that support WebDAV will add
folders to this list and an administrator can then activate or
deactivate the folders.</p>
<h2>How it Works</h2>
<p>OpenACS WebDAV Support requires the tDAV AOLserver module to
implement most of the WebDAV protocol. OpenACS WebDAV Support just
provides and interface between tDAV and the Content Repository</p>
<p>Each content_type that requires a custom handler much implement
the <code>dav</code> service contract. Each content type should
implement the <code>dav</code> service contract with the
implementation name the same as the content_type. This includes
operations for every WebDAV method. Some operations do not make
sense for certian object types. Specifically, content_items, which
are mapped to WebDAV resources, should not perform a MKCOL (make
collection) method. Likewise, a content_folder, or WebDAV
collection, should not allow a PUT method. In addition to the
<code>dav</code> service contract is a helper contract to allow
packages to set the initial content_type for new items created
through WebDAV. Each package should implement the
<code>dav_put_type</code> service contract with the implementation
named the same as the package key.</p>
<p>Each package instance that will allow WebDAV access should
register a package_id and folder_id for the root content_folder
that corresponds with the URI of the package's mount point using
<code>oacs_dav::register_folder</code>.</p>
<h2>Dispatching Requests</h2>
<p>A preauth filter is registered for all WebDAV methods. This
calls oacs_dav::authorize which will set oacs_dav::conn user_id to
the OpenACS user_id or 0 is the request is not authenticated. This
filter also calls oacs_dav::setup_conn sets up the basic
information needed to authorize the request. If authorization fails
a 401 HTTP response is returned requesting authentication
information. If authorization is successful the filter returns
filter_ok and the tdav::filter* filter for the method is
called.</p>
<p>The tdav::filter* commands setup global information for each
method that is independent of the storage type. After this filter
runs, the request is handled by the registered procedure for
OpenACS oacs_dav::handle_request.</p>
<p>oacs_dav::handle_request determines the package_id that should
handle the URI. This is based on the standard OpenACS site_node Tcl
API. After the package is found, the root folder for that package
is retreived from the dav_package_folder_map table. Using the
folder_id, and the URI of the request, the
<code>content_item__get_id</code> pl/sql(plpgsql) procedure is
called to find the item_id for the request. If no item_id is found
and the requested method is PUT, a new item should be created. If
the method is not PUT, a 404 error should be returned.</p>
<p>oacs_dav::handle_request will call the service contract
implemenation for the content_type of the item. If the request is a
PUT, first the dav_put_type service contract for the package_key of
the request is called. For file-storage this returns
"file_storage_object" so items created by PUT are created as
file_storage_objects instead of generic content_revisions.</p>
<p>The service contract implementation for each operation must
return the response data in the format required by tDAV. The
documentation for the tdav::respond::* procedures named for each
method describe what is required.</p>
<h2>Release Notes</h2>
<p>Please file bugs in the <a href="http://openacs.org/bugtracker/openacs/">Bug Tracker</a>.</p>
......@@ -4,23 +4,23 @@
</head>
<body>
<h2>OpenACS WebDAV Support</h2>
<h3>Introduction</h3>
<h1>OpenACS WebDAV Support</h1>
<h2>Introduction</h2>
<p>This package implements a WebDAV interface to the OpenACS
Content Repository. In addition to generic access to content
items, there is a service-contract interface so packages can
define custom handlers for WebDAV methods for objects that belong
to that package.
</p>
<h3>Installation</h3> <p>Install through the APM. If you install
<h2>Installation</h2> <p>Install through the APM. If you install
file-storage, WebDAV support is installed automatically. In
addtion you should check the tDAV specific configuration
parameters to the AOLserver configuration file. The default parameters work fine, they will create webdav URLs like <i>yoursite/</i>dav/*
<p>
You can visit the <a href="/webdav-support/">/webdav-support/</a> page to control webdav access on a per-folder basis. Packages that support WebDAV will add folders to this list and an administrator can then activate or deactivate the folders.
</p>
<h3>How
it Works</h3> <p>OpenACS WebDAV Support requires the tDAV
<h2>How
it Works</h2> <p>OpenACS WebDAV Support requires the tDAV
AOLserver module to implement most of the WebDAV protocol. OpenACS
WebDAV Support just provides and interface between tDAV and the
Content Repository
......@@ -42,7 +42,7 @@
register a package_id and folder_id for the root content_folder
that corresponds with the URI of the package's mount point using <code>oacs_dav::register_folder</code>.</p>
<h3>Dispatching Requests</h3>
<h2>Dispatching Requests</h2>
<p>A preauth filter is registered for all WebDAV methods. This
calls oacs_dav::authorize which will set oacs_dav::conn user_id to
the OpenACS user_id or 0 is the request is not authenticated. This
......@@ -78,4 +78,7 @@ the response data in the format required by tDAV. The documentation
for the tdav::respond::* procedures named for each method describe
what is required.</p>
<h2>Release Notes</h2>
<p>Please file bugs in the <a href="http://openacs.org/bugtracker/openacs/">Bug Tracker</a>.</p>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment