這個問題是自問自答, 為了避免日後 somebody 重蹈覆轍, 所以在此寫下一篇紀念文, 僅供參考. XD
1 問題詳述:
1.1 在 管理者主選單 > User magagement > Permissions 下:
1.1.1 對於 特定 role 的 user 存取 特定 content type 的 node 的 權限設定 都正確, 找不出錯誤.
1.1.2 但該 user 卻一直無法編輯原本預期可以編輯的 node , 包括:
1.1.2.1 在檢視該 node 時, 原本預期應該出現的 edit tag 沒出現.
1.1.2.2 若直接打 url 編輯, 如: [site-url]/node/4/edit , 則出現如下訊息:
Access denied
You are not authorized to access this page.
1.1.3 那麼問題究竟出在哪呢?
2 經過追蹤求證, 才發現原來:
2.1 這個 node 當初是 admin 所建, 而後來 admin 將 author 指派給 該 user. 但這不是造成問題的真正原因.
2.2 真正原因在於: 當初 admin 編輯該 node 的內容時, 是以 full html 的 input format 儲存的.
2.3 而指派到該 user 後, 由於該 user 的 roles 通通沒有使用 full html 的 input format 的權限, 所以就不能編輯該 node.
3 解決問題的關鍵: 在於 node 的內容需要編輯, 而內容的 input format 也是有權限要設定的.
3.1 但是它的設定不在 管理者主選單 > User management > Permissions 下, 而是在:
3.2 管理者主選單 > Site configuration > Input formats 下.
3.3 這裏完成設定後, 該 user 即可編輯 該 node. 設定細節可參考 檢視 FCKeditor 編輯儲存後的文章, 文字顏色沒跟著儲存進去?
4 心得:
4.1 一開始遇到這問題, 若往 管理者主選單 > User management > Permissions 設定的方向去想, 那就恭喜您有一整早可以好好練功了. 任憑你:
4.1.1 試過各種權限設定組合,
4.1.2 不厭其煩地清除過 n 次的 cache,
4.1.3 滿懷希望又終究失望地重建 m 次的 permission table,
4.1.3.1 補充: 管理者主選單 > Content management > Post settings 下的 Rebuild permissions 按下去, 即可重建 permission table.
4.1.4 最後疑神疑鬼地追到資料庫裏去, 看看 node, node_revisions, node_access 究竟隱藏了什麼魔鬼在裏面, 忙了一大圈, 終究還是解決不了問題. 因為一開始就方向錯誤.
4.2 而真正解決問題的關鍵實在是太簡單, 但卻又太容易被誤導了, 所以需要特別貼文留下關鍵字提醒一下以後會遇到的人.
4.3 遇過這問題的人不在少數, 至少 drupal 官網討論串就有一大串, 如: In reply to the above posts.
Re: 用戶權限設定正確, 但卻無法編輯 node ?
這個Drupal偵探文章寫得太好了,推!
tky
Re: 疑難雜症: 用戶權限設定正確, ...
@DrupalWTF
http://drupal.org/node/91663
---
notaBlueScreen | 一天一翻譯,好過吃蘋果
Re: 疑難雜症: 用戶權限設定正確, ...
呵呵.. Kay.L 大 對於 drupal 瞭若指掌呀.
看來到了 drupal 7, 這個問題就不會再發生囉.
這個疑難雜症能夠從設計上獲得改善算是較好的方式. XD
Re: 疑難雜症: 用戶權限設定正確, ...
好像迷宮指南~~然後一步步找出口…
心中常存善解、包容、感思、知足、惜福 (靜思語錄)
Re: 疑難雜症: 用戶權限設定正確, ...
這問題我也碰過,你的心路歷程我幾乎全部都有經歷到 XD
Re: 疑難雜症: 用戶權限設定正確, ...
今天剛發現這個問題,結果找原因的過程中,發現您剛好發這一篇,真是太感謝了!!