Rails 3.1应用程序集成webdav和身份验证?

时间:2011-11-07 08:52:46

标签: ruby-on-rails ruby-on-rails-3.1 webdav

我想启用WebDav for Rails 3.1应用程序,我使用Devise进行身份验证,使用CanCan进行授权。

到目前为止,我打开了WebDav,工作正常。是否可以使用带有dav4rack的Devise登录/用户来启用/限制对WebDav上某些文件/目录的访问?也许已经有关于那个的howto或wiki页面?任何帮助将不胜感激。

PS。这是解决这类问题的正确方法吗?也许我应该切换回apache mod_dav并将apache的dav用户/组与我的Rails应用程序中定义的用户/组同步?

1 个答案:

答案 0 :(得分:0)

我在这里找到了一个带有Dav4Rack资源的Devise的例子 https://github.com/bryanrite/dav4rack-example-devise-subdirectories/blob/master/app/models/my_resource.rb

class MyResource < DAV4Rack::FileResource

  def root
    File.join(options[:root].to_s, user.id.to_s)
  end

  private

  def authenticate(username, password)
    self.user = User.find_by_username(username)
    user.try(:valid_password?, password)
  end  

end

就我而言,我使用的是电子邮件而不是用户名。