Project

General

Profile

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
{{>toc}}
4 1 Arnaud Martel
5 10 Mischa The Evil
h2. Introduction
6
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
Main features:
13
*  webdav access to a project is done using an url like http://myserver/redmine/webdav
14
* the plugin allows you to see folders with the following structure:
15
<pre>
16
project1
17
   + documents
18
   |    + title_document1
19
   |    |     + file1
20
   |    |     + file2
21
   |    |     
22
   |    + title_document2
23
   |          + file1
24
   |          + file2
25
   |
26
   + files
27 2 Arnaud Martel
   |    + file1 (with no version)
28
   |    + file2 (with no version)
29
   |    + Version1
30
   |    |     + file1
31
   |    |     + file2
32
   |    |
33
   |    + Version2
34
   |          + file1
35
   |          + file2
36
   |
37
   + subversion
38
        + branches
39
        + tags
40
        + trunk
41 1 Arnaud Martel
project2
42
   + documents
43
   + files
44
project3
45
   + documents
46 2 Arnaud Martel
   + subversion
47 1 Arnaud Martel
48
</pre>
49
* plugin is using REDMINE permissions (:view_files, :manage_files, :view_documents and :manage_documents) to grant access to files and folders/documents
50
* plugin allows you all files operations (create, delete, rename, move and copy)
51
* 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
55
56 10 Mischa The Evil
h2. Setup
57 1 Arnaud Martel
58
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
60 2 Arnaud Martel
_About subversion support:_
61
To commit changes in Subversion, the plugin opens the repository with the file protocol. For this reason, you need the following:
62
* 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
67
If you want to install redmine_http_auth, run the following command from your redmine directory:
68
* ruby script/plugin install http://github.com/AdamLantos/redmine_http_auth.git
69
70
Then install redmine_webdav with:
71
* ruby script/plugin install http://github.com/amartel/redmine_webdav.git
72
* 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
77
<a href="http://github.com/stueccles/railsdav">Railsdav</a> needs these 2 plugins:
78
* unicode
79
* shared-mime-info
80
81
Under linux, install is done with:
82
* sudo gem install unicode
83
* sudo gem install shared-mime-info
84
85
h3. 3. Configure your web server
86
87
Assuming you are using RHEL5/CentOS5:
88
* Copy redmine_webdav/extra/svn/RedmineAdavanced.pm in /etc/httpd/Apache/Authn
89
* Create the file /etc/httpd/conf.d/redmine_webdav.conf
90
91 5 Arnaud Martel
@<Location /redmine/webdav>@
92 1 Arnaud Martel
   AuthType Basic
93
   AuthName REDMINE
94
   Require valid-user
95
   PerlAccessHandler Apache::Authn::RedmineAdvanced::access_handler
96
   PerlAuthenHandler Apache::Authn::RedmineAdvanced::authen_handler
97
   RedmineDSN "DBI:mysql:database=redmine;host=192.168.10.1;port=3306"
98
   RedmineDbUser "redmine"
99
   RedmineDbPass "password"
100
   RedmineAuthenticationOnly "On"
101
  Order allow,deny
102
  Allow from 127.0.0.1
103
  Satisfy Any
104 5 Arnaud Martel
@</Location>@
105 1 Arnaud Martel
106
h3. 4. Restart your web server
107
108
/etc/init.d/httpd restart
109
110
h3. 5. Configure REDMINE with your web browser
111
112
If everything is OK, you should see both plugins (WebDav and HTTP authentication) in the plugin list (Administration -> Plugins)
113
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
h3. 6. Set up your project
117
118
Don't forget to activate the webdav module in the projects where you want to access files over WevDav
119
120
h3. 7. Use webdav to manage files and documents
121
122
You have to use a WebDav client in order to use the plugin. 
123
124
For MacOSX (webdav access is natively supported):
125
* Open the finder and choose "Go to -> Connect to server..."
126
* enter *http://myserver/redmine/webdav* as the url of the server
127
* enter your credentials (login/password)
128
* You're in
129
130
131 5 Arnaud Martel
For linux/Ubuntu:
132
* menu *Places* -> *Connect to Server...*
133
** Service type: *WebDAV (HTTP)*
134
** Server: *myserver*
135
** Folder: */redmine/webdav*
136
* Click *Connect*
137 1 Arnaud Martel
138
For WindowsXP:
139
* Open *My Network Places*.
140
* Double-click *Add Network Place*.
141
* Click Next twice, then type *http://myserver/redmine/webdav*
142
* Click Next
143
* enter your credentials (login/password)
144
* Click Finish
145
146
147
148 10 Mischa The Evil
h2. Original author's README:
149 1 Arnaud Martel
150
Railsdav (WebDAV for Ruby On Rails)
151
===================================
152
153
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
155
156
READ COMMENTS IN lib/acts_as_webdav.rb TO START!
157
158
159
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
161
Railsdav requires the following gems in addition to rails
162
163
* unicode (gem install unicode)
164
* shared-mime-info (gem install shared-mime-info)
165
166
Railsdav was created by Stuart Eccles (http://www.liverail.net/). I'd like to thank the following people for assisting with Railsdav
167
168
*   Albert Ramstedt who contributed bug fixes for a variety of code issues and helped with re-structuring the plugin
169
*   Alex MacCaw
170
*   Fabien Franzen
171
172 10 Mischa The Evil
h2. History
173 5 Arnaud Martel
174 7 Arnaud Martel
0.2 : 2010-10-05
175
new: add lock (contribution from Xabier Elkano)
176
177 5 Arnaud Martel
0.1.3 : 2010-08-26
178
fixed: add better support to Windows XP + MSOffice XP (thanks to Xabier Elkano) 
179
fixed: urls in PROPFIND responses are now encoded (for multi-bytes charset support) 
180
fixed: copy directory is now recursive (filesystem SCM)
181 3 Arnaud Martel
182 4 Arnaud Martel
0.1.2 : 2010-08-23
183
* fixed: Read/Write access from MSOffice
184
185 3 Arnaud Martel
0.1.1 : 2010-08-03
186
* new: support WRITE operations for filesystem SCM
187
188
0.1.0 : 2010-07-23
189
Minor evolution with refactoring...
190
191
* 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
* new: settings per project with new permission (manage WEBDAV)
193
194
0.0.1 : 2010-07-06
195
Initial release