
以阿舍玩過的數十種系統來看,一般而言,系統的權限控制方式,除了「角色」以外,通常還會有「群組」的方式,再加上文件本身的權限設定,這樣的情況下,就可以設計出十分複雜的權限架構,但是, Drupal 卻只有角色的功能搭配各模組所設計的權限來組合運用,因此,感覺上就會顯的有點鬆垮的樣子,有些權限需求就會逗不起來,所以就得靠一些模組來補強哩.....。
阿舍今天要介紹的這個 Content Access 模組就是用來加強權限控管的能力,它的最大特色就是可以細到針對每一個節點 ( Node ) 做到依群組和個別使用來設定不同的「檢視(View)」、「編輯(Edit)」及「刪除(Delete)」的權限,也就是說,雖然是同一種內容類型,但是卻可以一給不同人看到不同的節點。所以,可以把節點的權限鎖的很死,不像內建的權限控制只能依內容類型和模組來設定和區分。
Content Access 這個模組不難裝,基本上只要啟用後,經由簡單的設定,就可以達到效果了,以下是 Content Access 模組的設定說明。
0. 安裝與啟用 ACL 模組
Content Access 模組有用到 ACL 模組所提供的 API,所以在啟用 Content Access 模組前,請各位大德先到這裡 http://drupal.org/project/acl 下載 ACL 模組。
ACL 模組只是一個提共權限控管的 API 模組,因此啟用後不需進行任何設定。
1.安裝與啟用 Content Access 模組
請到 http://drupal.org/project/content_access 下載此模組,下載解壓與安裝完成之後啟用。
2.設定「內容類型」權限
啟用 Content Access 模組之後並不會在管理界面裡出現 Content Access 模組的專用管理選項,而是必需要到「管理」> 「內容管理」>「內容類型」裡選一個內容類型來編輯時才會看得到 Content Access 的設定選項。
在開啟內容類型的之後( 以阿舍為例,阿舍是用 Story 來測的),注意看上一面有「編輯(Edit)」、「管理欄位(Manager Fields)」.....的那一排,會多出一個「權限控管(Access Control)」的項目 (Tab),點進去之後就會看到下列設定的項目:
「Per node access control settings」
這個是設定要不要啟用這個內容類型的個別節點權限控制的功能,打勾後,下面「Default access control settings」的設定就會生效,做為預設的節點權限設定,但是每個節點還是可以經由自定權限來變更預設的權限,,如果沒打勾,那這個節點還是使用 Drupal 內建的權限控管方式,不會受此模組的影響。
「Default access control settings」
這裡的預設值的意思是說,所有的這種內容類型所產生的節點,在使用者沒有調整、變更權限時,就用這裡所預設的權限。
Content Access 模組會去找出所有的角色,並依「管理」>「使用者管理」>「權限控管」裡的設定來給定預設的權限。
Content access 模組並沒有增加新的權限項目,因此可設定的的權限項目就分為下列三種:
View
可以開啟並檢視文件內容的角色
Edit
可以編修此節點的角色
Delete
可以刪除此節點的角色
完成上面的項目後,按「送出」。
3.設定個別節點的權限
在啟用「Enable per node access control settings」後,開啟該「內容類型」所產生的節點時,會發現和在設定「內容類型」時一樣,上面那一排多了一個「Access Control」,一樣的,點進去之後會看到和在設定「內容類型」時看到的,類似的權限設定畫面,各位大德可以在這裡重新設定過權限,而這個修改只會影響到這一個節點,不會影響到其他同種的「內容類型」所產生的節點。
和在「內容類型」設定中不一樣的是,下面多了「User access control lists」的設定項目,這個就是提供可以依據不同使用箸做權限控制的設定,在這幾個欄位裡,只能填入使用者,而且一旦設定之後,這個節點就只能由設定的使用者才能操作。
只要配上個 Content Access 模組來做權限的控管之後,就可以把權限設的很細,不過,阿舍還是覺得有「群組」的方式會更好一點,不然一個個節點,再加上一個個的設定使用者,實在是有些不方便哩....=___=!!。
- 瀏覽次數: 2348
Hello jthink0228 兄,
阿舍沒遇過,不過有去官網查了一下,這一篇 http://drupal.org/node/140930 大概和 jthink0228 兄的想法很接近,提供參考囉 !! ^^=。
阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw
這篇看不是很董...
不過我找到類似這功能的模組了..
Quota by role
還滿不錯用的...^^
阿舍兄..想請教你一個audio的問題
目前這模組的設定
發表一篇文就只能傳一個檔案...上傳第二個就會覆蓋第一個....該改哪裡才可以上傳多個檔案呢??
麻煩指點我一下^^
Hello jthink0228,
這個 Audio 模組應該和 Image 模組一樣,都只能上傳一個檔案,後面會蓋到前面,可能是在程式設計上就限制住了,阿舍沒去看 Code,是用推測的,所以就供參囉 !!
阿舍...
阿舍的 Drupal 架站經驗談
http://drupal.soa.tw
想請問,那有針對欄位設定權限的功能模組嗎?
應用的情境大概是,一般使用者限制其只能修改node裡的某些欄位,而管理者才能新增修改刪除node和其內容。
不知道有沒有模組有提供這樣的功能,
目前是有想到替代方案,就是修改編輯呈現方式,把不能修改的欄位就不要在編輯畫面中顯示,不過目前也不知道如何實作便是...
(不知道view有沒有辦法做到,還盼指教)
麻煩指點了,感謝。
Hello CS兄,
阿舍找了好幾個方式,但是都沒有找到什麼可用的模組,只有找到下面這篇大概是有符合 CS 兄的需要,就請參考了....不過,,,看來是要改程式的....


阿舍兄:
請問一下...有沒有模組是可以限制使用者發文的次數的?
例如:
我新增一個內容類型a..
但每個有權限的人只能發表a文章一次....
有這功能嗎?...
請指點我依下..感恩^^