2012-01-16 99 views
1

我有一個自定義的對象與主要細節機會。有沒有方法可以確定用戶在查詢此自定義對象時是否具有讀取或讀取/寫入權限?查詢對象父級的用戶權限級別?

爲了澄清我的需要,我在尋找一種方式有明顯的區別記錄之間,他們只能進行讀操作,以及他們可以編輯記錄,以使我的網頁(非visualforce)。

回答

1

用戶必須是相同的訪問,因爲他們有機會。 Profile對象公開權限,但它似乎不允許您查找有關對象的CRUD設置。

你創建一個集成部分或Visualforce工作?如果您使用的是Visualforce,界面將自動遵守安全控制,隱藏他們不允許看到的數據,並且只有在使用<apex:inputField>(如果他們沒有寫入該字段的權限)時才允許字段爲只讀。

**編輯** 也許有人會有更好的解決方案,但試圖更新您查詢的記錄,存儲每個記錄是成功還是失敗,然後使用它來控制界面?黑客的位,如果我找到其他東西,我一定會更新。

**編輯** 25/01/2012有 只碰到過這樣的:http://www.salesforce.com/us/developer/docs/api/index_Left.htm#StartTopic=Content/sforce_api_objects_userrecordaccess.htm?SearchType=Stem

相當肯定會給你你需要的東西!

+0

集成,所以理想情況下我希望在查詢記錄的同時獲得此信息。我知道有一個OpportunityShare對象有一些權限信息,但我不確定它是否是正確的東西,或者如果在查詢我的自定義對象時甚至可以查看。 – CDelaney 2012-01-17 17:11:11

+0

剛剛更新我的答案,包括一些新的發現信息:) – 2012-01-24 23:38:12

+0

我希望避免任何額外的查詢,但至少我可以得到所有行的權限,只是一個額外的鏡頭與此有關。謝謝 – CDelaney 2012-01-27 19:40:48

0

我不知道的方式來查詢,找出訪問級別但是如果你的頂點類使用共享中的關鍵字,將尊重共享的對象因此,當您嘗試更新,你會得到的數據你可以捕捉到一個DML異常。

如果你不使用的分享,然後先端不尊重共享模式和技術,用戶將能夠更新數據,即使他們沒有權限。

正如LaceySnr指出的那樣,如果您使用的是visualforce,<apex:inputfield>元素只會在只讀訪問時自動向用戶顯示只讀。

+0

我希望能夠在頁面之間顯示用戶可能編輯和不可編輯的記錄之間的視覺差異,因此,從控制器處理失敗並不是一個解決方案。我編輯了我的原始文章以澄清一點。 – CDelaney 2012-01-17 19:53:37