2015-06-19 66 views
2

當用戶通過本網站創建預訂時,將生成發票(pdf)並保存在資產/發票中。只有工作人員才能訪問這些文件下載併發送給客戶。但是,目前如果確切的網址被某人知道,他們是否可以訪問它,無論他們是否登錄。我試圖限制只有那些登錄到CMS的用戶才能訪問這些文件。有沒有辦法通過一些權限模塊來做到這一點?只有登錄到CMS時才允許訪問文件[SilverStripe]

+0

你能告訴我們你到目前爲止所嘗試過的嗎? – Gerton

+0

我已經刪除了代碼,但我可以解釋。我嘗試通過htaccess文件限制對IP地址的訪問(認爲CMS中的那些服務器會獲得服務器IP),但是他們沒有,並且它返回了個人IP,因此此選項無效。這就是我到目前爲止所嘗試的,我已經在網上尋找解決方案,但我似乎無法找到任何人有同樣的問題。 –

回答

0

當我試圖通過模塊來實現這一點時,我沒有得到任何結果。我所做的是爲了在assets目錄中添加一個私有文件夾,讓我的所有安全文件都在這個文件夾中。我加入含有私人文件夾內的htaccess文件:

<IfModule mod_rewrite.c> 
SetEnv HTTP_MOD_REWRITE On 
RewriteEngine On 
RewriteBase/

RewriteEngine On 
RewriteCond %{HTTP_COOKIE} !cookie_name=cookie_value; [NC] 
RewriteRule^/page-not-found [NC,L] 

此代碼檢查特定cookie名稱和特定的cookie的值,如果這個條件不滿足,將用戶重定向到頁未發現的網址。

在我已經出現的CMS的預約系統的擴展中,我設置了cookie。這個cookie隨後在登錄到CMS時設置,如果用戶沒有這個cookie,他們將無法查看/ assets/private目錄中的任何文件/文件夾。

相關問題