0

DevEx eXpressApp フレームワークを使用してプロジェクト管理タイプのアプリケーションを開発しています。私はこれを 1 年近く使用していますが、そのセキュリティ モデルを使い始めたばかりで、要件を実装するためのアプローチを定義する際に助けが必要です。

Project と Tasks の 2 つのクラスがあります。Project には Tasks (Tasks という名前) の子 XPCollection (Property) が含まれているため、Project.Tasks.Add(Task t); と入力できます。私ができることは、タスク コレクション内の特定のタスクを表示および編集する機能をユーザーに提供する方法を考え出すことだけです。管理者ユーザーとして、ユーザー 1 をプロジェクト P1 のタスク 1 と 3、およびプロジェクト P2 のタスク 4 に「割り当てる」方法が必要です。次に、たとえば、ユーザー 2 をプロジェクト P1 のタスク 2 と P2 のタスク 1 ~ 3 に割り当てます。常に新しいプロジェクトがあるため、プロジェクト内でアドホックにユーザーを割り当て/割り当て解除する柔軟な方法が必要です。応用。

  1. プロジェクト1

    • タスク 1 - ユーザー 1
    • タスク 2 - ユーザー 2
    • タスク 3 - ユーザー 1
  2. プロジェクト 2

    • タスク 1 - ユーザー 2
    • タスク 2 - ユーザー 2
    • タスク 3 - ユーザー 2
    • タスク 4 - ユーザー 1

ユーザー 1 がログインしてプロジェクト 1 (ListandDetailView 内) をクリックすると、割り当てられているタスクのみが表示されます。同じことがユーザー 2 にも当てはまります。どちらのユーザーも、どちらのプロジェクトのタスクのセット全体も表示しません。

ダミー プロジェクトを作成しましたが、各ユーザーがすべてのタスクを表示するか、またはまったく表示しないポイントまでしか到達できません。Object Permissions (Criteria を使用) アプローチが有効だと考えていますが、どの基準を使用すればよいかわかりません。

セキュリティ モデルに関連する設計の提案を広く受け入れます。役割/グループ/新しいクラスなど

ただし、「タスク間の依存関係など」など、ここで言及されていないアプリケーション設計の問題は無視してください。非常に具体的な要件があります。

助けてください!

役立つ場合の追加のランダム情報。

  1. 実行しているソフトウェアのバージョンは何ですか? DevExpress 12.1 (vx2)
  2. お使いのオペレーティング システムは何ですか? Windows Server 2008
  3. うまくいかないことを正確に何をしようとしていますか?アプリケーションのセキュリティを設定して、ログインしたユーザーがオブジェクトの子コレクション内の特定のアイテムを表示する機能を制限します
  4. 問題は均一ですか、それとも不規則ですか? ユニフォーム
  5. 正確なエラー メッセージは何ですか? まだエラーはありません。これまでのところ、コレクション内のすべてのアイテムを表示する方法、またはまったく表示しない方法を理解しました
  6. それはいつ発生しましたか?なし
  7. あなたが「得られない」ものは何ですか?要件を達成するためにセキュリティ モデルを構成する方法
  8. 理想的には、エラーが発生する行エラーを含むサンプル コードを提供できますか? まだコードはありません。さまざまな読み取り/書き込み/ナビゲートなどのチェックボックスを選択するだけです。
4

1 に答える 1

2

2 つのオプションがあります

  • ここに記載されている「新規」セキュリティを使用し、次のような基準で「読み取り」オブジェクト権限を使用します(提案どおり)Task.User = CurrentUserId()
  • 古い (11.2 より前の) セキュリティ システムでも機能するという利点があるここで説明する方法を使用して、 ViewController でフィルタリングを処理します。

最初の方法が望ましいですが、2 番目の方法の方が制御しやすく、タスクの「所有権」を決定するルールが複雑すぎて簡単な基準で説明できない場合に適しています。

于 2012-08-07T09:04:14.083 に答える