2

私は他のものの中でキューの作成を可能にするvisualforceページを書いています。ただし、ユーザーが必要な権限を持っているかどうかに応じて、セクションを表示するかどうかを制御したいと思います。

ドキュメントによると:キューの作成ユーザーは両方の権限を持っている必要があります:

  1. 「アプリケーションのカスタマイズ」
  2. 「パブリックリストビューの管理」

私は次のようにプロファイルをクエリしています:

Profile profile = [
    SELECT
        PermissionsCustomizeApplication
        //Was expecting: PermissionsManagePublicListViews
    FROM
        Profile
    WHERE
        Id = :UserInfo.getProfileId()];

ただし、私の問題は、「パブリックリストビューの管理」権限がプロファイルオブジェクトに公開されていないと思うことです。API名がとても違うので、見落としていますか?コードでこの権限を確認する方法を知っている人はいますか?

4

3 に答える 3

0

権限の名前はわかりませんが、initメソッドなどでキューを挿入(および削除)するメソッドを実行できます。成功した場合は、関連するすべての権限があることがわかります。必要。

もちろん、ここでの問題は、キューを削除できないようにすることです(CRUD操作に関しては、システム内の他のオブジェクトと同じように機能すると思います)。

于 2012-07-19T11:08:26.763 に答える
0

コードでこれらの権限を確認することはできません。LanceySnrの提案がおそらく最も簡単な回避策です。ただし、個人的には、コンストラクターでオブジェクトを作成および削除してアクセス許可を確認するというアイデアは好きではありません。

代わりに、プロファイルの作成を許可されているプロファイル(プレーンテキストなど)を追跡するためのカスタム設定を作成します。カスタム設定の利点は、新しいプロファイルが作成されたとき、古いプロファイルが削除されたとき、または権限が再構成されたときに、管理者がカスタム設定を更新できることです。

カスタム設定をコントローラーコードの「withsharing」キーワードと組み合わせて使用​​すると、キューを作成する権限を持たないユーザーがキューを作成できないようにすることができます。

Anup

于 2012-07-22T09:33:58.617 に答える
0

「アプリケーションのカスタマイズ」プロファイルオプションを使用しているユーザーのみに限定することにしました。

これが重要なプロファイルオプションであるためです。パブリックリストビューオプションが必要な唯一の理由は、新しいキューごとに新しいビューが作成されるためです。

私が発見したように、apexコードのキューオブジェクトにはクラッドセキュリティがありません。したがって、キューの作成を「アプリケーションのカスタマイズ」を使用するユーザーのみに制限することは、最も安全で柔軟な行動のように思われます。

于 2012-07-24T08:48:18.447 に答える