2010-08-03 40 views
6

要讓用戶能夠共享專用鏈接,可讓任何點擊該鏈接的用戶查看某個頁面/文檔/項目的最佳方式隱私限制已到位?Ruby on Rails專用鏈接共享:Google文檔樣式

在我的情況:

用戶創建它們僅限於關係的某些羣體在數據庫中的事件(即:朋友,朋友的朋友等):在事件控制器的before_filter我有一個它檢查當前登錄用戶的資格,以確保該用戶有權查看該事件。如果他們不這樣做,他們會通過錯誤消息啓動到根頁面。

但是,我想要一個特殊的場景,用戶可以創建一個具有相同隱私設置的事件,並且可以通過電子郵件,臉譜等與他或她的朋友分享特殊鏈接。那些用戶不需要帳號(但需要註冊一個帳號才能註冊該活動)。這很重要,因爲在application_controller中還有一個:before_filter,它確保用戶已經登錄。

我在想這裏有一些東西我可以用路由在這裏......現在我只是簡單/事件/ 72設置。每個事件應該有兩個不同的鏈接:一個正常的鏈接和一個「特殊代碼」版本,它們可以繞過這兩個鏈接:before_filter?

什麼是人們的想法?

回答

4

我會有一個單獨的控制器,它使用散列值來引用事件。

像created_at + user_id這樣簡單的東西可以創建一個唯一的引用。

你也可以簡單地跳過對特定動作的檢查,但我更喜歡第一種解決方案。

+0

謝謝!我會嘗試一下。 – JackCA 2010-08-04 19:28:23

6

我同意David Lyod的回答(在不同的控制器中分隔這個問題)。

但是爲了創建散列,我強烈建議你用一些祕密短語醃製散列。

require "digest" 
Digest::SHA512.hexdigest("#{created_at}#{user_id}.mysupersonicsecretSALT") 

這樣做是不可能的,沒有祕密短語的knowlegde,計算哈希值,並測試他們對你的系統,直到遇到一個現有的。 如果你正在處理敏感數據,你不應該懶惰。

乾杯,

盧卡斯