2010-03-17 112 views
1

我想爲我的應用程序添加「共享文檔」功能,就像在Google文檔服務中一樣。因爲我看到:Rails基於對象的權限/授權引擎?

用戶可以:

  • 可以列出/查看/創建/修改/刪除自己的文件
  • 份額自己的文檔給大家 - 它的一份公開文件
  • 份額自己到另一個文件具有隻讀訪問
  • 份額自己的文件具有讀寫訪問權限的用戶
  • 視圖自己的文件和用戶列表中的用戶的人,他給了允許讀取和寫入
  • 鑑於外地文件列表
  • 查看/編輯外地文件具有讀/寫權限

請告訴我,該許可/授權解決方案是爲較受歡迎的鏈接我的任務?

回答

2

你可以看一下這裏提供一些授權的插件:

http://www.ruby-toolbox.com/categories/rails_authorization.html

至於對象級別授權/許可,它看起來像canable可以這樣做:

http://github.com/jnunemaker/canable

從自述文件中的示例:

class Article 
    include MongoMapper::Document 
    include Canable::Ables 
    userstamps! # adds creator and updater 

    def updatable_by?(user) 
    creator == user 
    end 

    def destroyable_by?(user) 
    updatable_by?(user) 
    end 
end 

你也可以定義一個viewable_by?方法。您仍然需要某種類型的權限字段或文檔模型中的關聯,但在此之後,您可以使用canable來簡化您的控制器/視圖中的授權。

+0

感謝您的回答。我已經在那裏搜索過。並查看所有瑞安授權相關視頻。 cancan(和acl9和declarative_authorization)不能滿足我的需求。 – Vlad 2010-03-19 10:32:39

+0

我更新了自己的評論,將注意力集中在可以放置的地方,因爲它看起來像自述文件,它可以幫助您獲得每個對象的授權。 – 2010-03-21 09:39:40

+0

我發現的基於對象的權限的最好的圖書館被稱爲制裁,不幸的是它從未被打包爲寶石,並且可能已經收集到一些信息。 https://github.com/matthewvermaak/sanction – 2013-10-30 22:25:43