最近研究Salesforce權限時碰到了一個問題:
『使用者對於某欄位只有讀的權限,但前台又設定此欄位必填,會發生什麼事情呢?』
“唯讀”與“必填”的矛盾對決,是誰會勝出呢?於是我進行了以下測試:
Profile 為 Standard Platform User 的使用者
選擇Profile為“Standard Platform User”的使用者、
以及Contact物件中的“Assistant”、“Asst. Phone”欄位來測試。
Step 1. 一開始先修改Profile設定,將“Assistant”欄位設為只能讀,“Asst. Phone”保留Edit Access。
Assistant、Asst. Phone設定必填
Step 2. 接著到Contact的Page Layout將“Assistant”、“Asst. Phone”都設為必填。
編輯前的Assistant、Asst. Phone欄位
Step 3. 最後我以“Standard Platform User”使用者登入,看見使用者只能讀“Assistant”以及可編輯“Asst. Phone”。
(符合Profile中的設定)
編輯中的Assistant、Asst. Phone欄位
Step 4. 點選編輯後,
發現『 只有“Asst. Phone”被設為必填 』,“Assistant”欄位依舊只能Read(不能編輯)。
這蠻有趣的,也就是“Assistant”必填設定沒有起到作用。
那麼是針對讀寫權限,Profile的設定會永遠覆寫Page Layout的設定嗎?
Step 1. 我回到Admin使用者,將“Asst. Phone”前台頁面設定改為Read-Only,並再次用Platform使用者登入
可以看到原本可以編輯的欄位的確變為唯讀。
因此代表Page Layout依舊可以變更讀寫權限,但只是,只能設定比Profile更嚴苛的條件。
Profile唯讀權限 比 前台“必填”設定 還嚴苛,因此唯讀不會被前台設定所覆寫。
但Profile編輯權限 比 前台唯讀或是必填設定還不嚴苛,因此編輯權限會被前台所覆寫。