PluginWebDav » History » Version 10

Mischa The Evil, 2010-10-17 07:15
Fixed heading levels.

1 10 Mischa The Evil
h1. WebDav plugin
2 9 Mischa The Evil
3 9 Mischa The Evil
{{>toc}}
4 1 Arnaud Martel
5 10 Mischa The Evil
h2. Introduction
6 10 Mischa The Evil
7 1 Arnaud Martel
This WebDav plugin is mainly a POC (proof of concept) for accessing files and documents using WebDav protocol. 
8 6 Ian Epperson
This plugin is a fork of this existing railsdav plugin ("railsdav":http://github.com/funkensturm/railsdav) with some modifications to make it run with REDMINE.
9 1 Arnaud Martel
10 5 Arnaud Martel
This was done using REDMINE trunk r3826 (=> 0.9.5 +) but any release after 0.9 should work. Last tested revision is r4029 (1.0.1)
11 1 Arnaud Martel
12 1 Arnaud Martel
Main features:
13 1 Arnaud Martel
*  webdav access to a project is done using an url like http://myserver/redmine/webdav
14 1 Arnaud Martel
* the plugin allows you to see folders with the following structure:
15 1 Arnaud Martel
<pre>
16 1 Arnaud Martel
project1
17 1 Arnaud Martel
   + documents
18 1 Arnaud Martel
   |    + title_document1
19 1 Arnaud Martel
   |    |     + file1
20 1 Arnaud Martel
   |    |     + file2
21 1 Arnaud Martel
   |    |     
22 1 Arnaud Martel
   |    + title_document2
23 1 Arnaud Martel
   |          + file1
24 1 Arnaud Martel
   |          + file2
25 1 Arnaud Martel
   |
26 1 Arnaud Martel
   + files
27 2 Arnaud Martel
   |    + file1 (with no version)
28 2 Arnaud Martel
   |    + file2 (with no version)
29 2 Arnaud Martel
   |    + Version1
30 2 Arnaud Martel
   |    |     + file1
31 2 Arnaud Martel
   |    |     + file2
32 2 Arnaud Martel
   |    |
33 2 Arnaud Martel
   |    + Version2
34 2 Arnaud Martel
   |          + file1
35 2 Arnaud Martel
   |          + file2
36 2 Arnaud Martel
   |
37 2 Arnaud Martel
   + subversion
38 2 Arnaud Martel
        + branches
39 2 Arnaud Martel
        + tags
40 2 Arnaud Martel
        + trunk
41 1 Arnaud Martel
project2
42 1 Arnaud Martel
   + documents
43 1 Arnaud Martel
   + files
44 1 Arnaud Martel
project3
45 1 Arnaud Martel
   + documents
46 2 Arnaud Martel
   + subversion
47 1 Arnaud Martel
48 1 Arnaud Martel
</pre>
49 1 Arnaud Martel
* plugin is using REDMINE permissions (:view_files, :manage_files, :view_documents and :manage_documents) to grant access to files and folders/documents
50 1 Arnaud Martel
* plugin allows you all files operations (create, delete, rename, move and copy)
51 1 Arnaud Martel
* plugin allows you to create documents (just create a folder inside documents folder) but version creation is not allowed
52 3 Arnaud Martel
* plugin allows repository access through WEBDAV (Read/Write for subversion and filesystem SCM if repositories are on the redmine server, Read only for all others SCM supported in REDMINE)
53 1 Arnaud Martel
* folder names used (ie: files/documents/subversion in the example) can be changed through per project settings
54 1 Arnaud Martel
55 1 Arnaud Martel
56 10 Mischa The Evil
h2. Setup
57 1 Arnaud Martel
58 1 Arnaud Martel
WEBDAV is using basic HTTP authentication which is not supported in REDMINE core (at least in 0.9.5). A workaround is to use this very nice plugin "redmine_http_auth":http://github.com/AdamLantos/redmine_http_auth in conjunction with Apache and RedmineAdvanced.pm (located in  redmine_webdav/extra/svn)
59 1 Arnaud Martel
60 2 Arnaud Martel
_About subversion support:_
61 2 Arnaud Martel
To commit changes in Subversion, the plugin opens the repository with the file protocol. For this reason, you need the following:
62 2 Arnaud Martel
* The repositories have to be installed on the REDMINE server.
63 5 Arnaud Martel
* Plugin will replace the beginning of your repository location ([protocol]://[server]/) with "file:///svnroot/". You may need to create a symbolic link /svnroot for this to work...  
64 2 Arnaud Martel
65 1 Arnaud Martel
h3. 1. Install plugin into vendor/plugins
66 1 Arnaud Martel
67 1 Arnaud Martel
If you want to install redmine_http_auth, run the following command from your redmine directory:
68 1 Arnaud Martel
* ruby script/plugin install http://github.com/AdamLantos/redmine_http_auth.git
69 1 Arnaud Martel
70 1 Arnaud Martel
Then install redmine_webdav with:
71 1 Arnaud Martel
* ruby script/plugin install http://github.com/amartel/redmine_webdav.git
72 1 Arnaud Martel
* rake db:migrate_plugins RAILS_ENV="production"
73 2 Arnaud Martel
74 5 Arnaud Martel
75 1 Arnaud Martel
h3. 2. Get the required gems
76 1 Arnaud Martel
77 1 Arnaud Martel
<a href="http://github.com/stueccles/railsdav">Railsdav</a> needs these 2 plugins:
78 1 Arnaud Martel
* unicode
79 1 Arnaud Martel
* shared-mime-info
80 1 Arnaud Martel
81 1 Arnaud Martel
Under linux, install is done with:
82 1 Arnaud Martel
* sudo gem install unicode
83 1 Arnaud Martel
* sudo gem install shared-mime-info
84 1 Arnaud Martel
85 1 Arnaud Martel
h3. 3. Configure your web server
86 1 Arnaud Martel
87 1 Arnaud Martel
Assuming you are using RHEL5/CentOS5:
88 1 Arnaud Martel
* Copy redmine_webdav/extra/svn/RedmineAdavanced.pm in /etc/httpd/Apache/Authn
89 1 Arnaud Martel
* Create the file /etc/httpd/conf.d/redmine_webdav.conf
90 1 Arnaud Martel
91 5 Arnaud Martel
@<Location /redmine/webdav>@
92 1 Arnaud Martel
   AuthType Basic
93 1 Arnaud Martel
   AuthName REDMINE
94 1 Arnaud Martel
   Require valid-user
95 1 Arnaud Martel
   PerlAccessHandler Apache::Authn::RedmineAdvanced::access_handler
96 1 Arnaud Martel
   PerlAuthenHandler Apache::Authn::RedmineAdvanced::authen_handler
97 1 Arnaud Martel
   RedmineDSN "DBI:mysql:database=redmine;host=192.168.10.1;port=3306"
98 1 Arnaud Martel
   RedmineDbUser "redmine"
99 1 Arnaud Martel
   RedmineDbPass "password"
100 1 Arnaud Martel
   RedmineAuthenticationOnly "On"
101 1 Arnaud Martel
  Order allow,deny
102 1 Arnaud Martel
  Allow from 127.0.0.1
103 1 Arnaud Martel
  Satisfy Any
104 5 Arnaud Martel
@</Location>@
105 1 Arnaud Martel
106 1 Arnaud Martel
h3. 4. Restart your web server
107 1 Arnaud Martel
108 1 Arnaud Martel
/etc/init.d/httpd restart
109 1 Arnaud Martel
110 1 Arnaud Martel
h3. 5. Configure REDMINE with your web browser
111 1 Arnaud Martel
112 1 Arnaud Martel
If everything is OK, you should see both plugins (WebDav and HTTP authentication) in the plugin list (Administration -> Plugins)
113 1 Arnaud Martel
114 2 Arnaud Martel
New permissions are now available and you have to assign them to the roles you need
115 1 Arnaud Martel
116 1 Arnaud Martel
h3. 6. Set up your project
117 1 Arnaud Martel
118 1 Arnaud Martel
Don't forget to activate the webdav module in the projects where you want to access files over WevDav
119 1 Arnaud Martel
120 1 Arnaud Martel
h3. 7. Use webdav to manage files and documents
121 1 Arnaud Martel
122 1 Arnaud Martel
You have to use a WebDav client in order to use the plugin. 
123 1 Arnaud Martel
124 1 Arnaud Martel
For MacOSX (webdav access is natively supported):
125 1 Arnaud Martel
* Open the finder and choose "Go to -> Connect to server..."
126 1 Arnaud Martel
* enter *http://myserver/redmine/webdav* as the url of the server
127 1 Arnaud Martel
* enter your credentials (login/password)
128 1 Arnaud Martel
* You're in
129 1 Arnaud Martel
130 1 Arnaud Martel
131 5 Arnaud Martel
For linux/Ubuntu:
132 5 Arnaud Martel
* menu *Places* -> *Connect to Server...*
133 5 Arnaud Martel
** Service type: *WebDAV (HTTP)*
134 5 Arnaud Martel
** Server: *myserver*
135 5 Arnaud Martel
** Folder: */redmine/webdav*
136 5 Arnaud Martel
* Click *Connect*
137 1 Arnaud Martel
138 1 Arnaud Martel
For WindowsXP:
139 1 Arnaud Martel
* Open *My Network Places*.
140 1 Arnaud Martel
* Double-click *Add Network Place*.
141 1 Arnaud Martel
* Click Next twice, then type *http://myserver/redmine/webdav*
142 1 Arnaud Martel
* Click Next
143 1 Arnaud Martel
* enter your credentials (login/password)
144 1 Arnaud Martel
* Click Finish
145 1 Arnaud Martel
146 1 Arnaud Martel
147 1 Arnaud Martel
148 10 Mischa The Evil
h2. Original author's README:
149 1 Arnaud Martel
150 1 Arnaud Martel
Railsdav (WebDAV for Ruby On Rails)
151 1 Arnaud Martel
===================================
152 1 Arnaud Martel
153 1 Arnaud Martel
THIS IS A MODIFIED VERSION OF THE ORIGINAL Railsdav, created by Marcello Nuccio.  I have done it because I was not able to make to use the original one.
154 1 Arnaud Martel
155 1 Arnaud Martel
156 1 Arnaud Martel
READ COMMENTS IN lib/acts_as_webdav.rb TO START!
157 1 Arnaud Martel
158 1 Arnaud Martel
159 1 Arnaud Martel
Railsdav is a plugin which allows for custom WebDAV controllers to be added to a Ruby On Rails application to expose functionality as filesystems to WebDAV clients such as Mac OS X Finder, Windows Network Places, Dreamweaver etc.
160 1 Arnaud Martel
161 1 Arnaud Martel
Railsdav requires the following gems in addition to rails
162 1 Arnaud Martel
163 1 Arnaud Martel
* unicode (gem install unicode)
164 1 Arnaud Martel
* shared-mime-info (gem install shared-mime-info)
165 1 Arnaud Martel
166 1 Arnaud Martel
Railsdav was created by Stuart Eccles (http://www.liverail.net/). I'd like to thank the following people for assisting with Railsdav
167 1 Arnaud Martel
168 1 Arnaud Martel
*   Albert Ramstedt who contributed bug fixes for a variety of code issues and helped with re-structuring the plugin
169 1 Arnaud Martel
*   Alex MacCaw
170 1 Arnaud Martel
*   Fabien Franzen
171 1 Arnaud Martel
172 10 Mischa The Evil
h2. History
173 5 Arnaud Martel
174 7 Arnaud Martel
0.2 : 2010-10-05
175 7 Arnaud Martel
new: add lock (contribution from Xabier Elkano)
176 7 Arnaud Martel
177 5 Arnaud Martel
0.1.3 : 2010-08-26
178 5 Arnaud Martel
fixed: add better support to Windows XP + MSOffice XP (thanks to Xabier Elkano) 
179 5 Arnaud Martel
fixed: urls in PROPFIND responses are now encoded (for multi-bytes charset support) 
180 5 Arnaud Martel
fixed: copy directory is now recursive (filesystem SCM)
181 3 Arnaud Martel
182 4 Arnaud Martel
0.1.2 : 2010-08-23
183 4 Arnaud Martel
* fixed: Read/Write access from MSOffice
184 4 Arnaud Martel
185 3 Arnaud Martel
0.1.1 : 2010-08-03
186 3 Arnaud Martel
* new: support WRITE operations for filesystem SCM
187 3 Arnaud Martel
188 3 Arnaud Martel
0.1.0 : 2010-07-23
189 3 Arnaud Martel
Minor evolution with refactoring...
190 3 Arnaud Martel
191 3 Arnaud Martel
* new: add repository access through WEBDAV (Read/Write for subversion if repositories are on the redmine server, Read only for all others supported SCM)
192 3 Arnaud Martel
* new: settings per project with new permission (manage WEBDAV)
193 3 Arnaud Martel
194 3 Arnaud Martel
0.0.1 : 2010-07-06
195 3 Arnaud Martel
Initial release