質問

サーバーからAJAXアプリケーションにかなり複雑な権限を伝達するための最良の方法について議論していますが、最善のアプローチを講じる方法はわかりません。

本質的に、1回ですべての権限をリクエストし、必要に応じてUIを調整できるように権限を定義する必要があります(UIの変更は、特定のコンテキストメニュー項目を無効にするのと同じくらい低いレベルにすることができます)。もちろん、私はまだサーバー側の許可を強制する必要があります。

だから、誰かが最善の方法のための提案を持っているかどうか疑問に思っていました

  1. 権限を維持し、サーバーコードで使用する
  2. javascriptの権限に簡単にアクセスできます
  3. 個々の許可ごとにサーバーへの往復要求を行う必要はありません

思考?

役に立ちましたか?

解決

「ユーザーレベル」などの明確な権限セットがある場合または「ユーザータイプ」の場合、値を非表示フィールドに渡すだけで、DOMを介して値にアクセスできます。パーミッションがよりきめ細かい場合でも、これを行うことができますが、多くの隠しフィールドがあるか、情報をXMLまたはJSONまたは他の形式にエンコードする必要があります。

これらをビットフラグとして設定して、単一の数値とマスクをORして、ユーザーが特定のアクティビティに対する権限を持っているかどうかを確認できます。これは非常に柔軟性があり、32個以上の特定の「権利」を持たない限り、非常に小さなパッケージ(基本的には符号なしint)でこれらの権利を並べ替えることができます。

例:

0x00000001 //edit permission
0x00000002 //create new thing permission
0x00000004 //delete things permission
0x00000008 //view hidden things permission
   .
   .
   .
0x80000000 //total control of the server and everyone logged in

その後、 0x000007 の許可を持つユーザーは、編集、作成、および削除はできますが、それ以外は何もできません。

どちらの場合でも、あなたは正しい軌道に乗っていると思います-ページ呼び出しごとに1回リクエストを行い、グローバルJavaScriptデータ構造にアクセス許可を保存し、そこから進みます。 AJAXは便利ですが、ページ全体の特定のアクセス許可すべてについてサーバーに照会するのは望ましくありません。ページのロード時に一度行い、ページのプレゼンテーションを設定し、値をグローバル変数に保存してから、イベント関数のパーミッションをローカルで参照します。

他のヒント

許可構造をJSONオブジェクト(または必要に応じてXML)としてクライアントに送信する場合、そのオブジェクトをクライアント側のコードで操作し、サーバーに送り返すことができます。データを検証して永続化する必要があります。

必ずしも「正しい」とは限りません。ソリューションですが、サーバー側ですべての権限を保持し、何らかの種類のJSON権限システムではなく、更新されたUIを提供することは可能でしょうか?

アプリがどれほど忙しくて集中するかを基に決定する必要がありますが、どちらの方法でも決定する価値のある決定は間違いありません

JSON としてエンコードします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top