0

私はdjangoを使用してWebベースのアプリを作成しています。このアプリは、複数のクライアントによってサービスとして使用されます。

階層関係を表すいくつかのモデル/テーブルがあります。ユーザーには、この階層関係 (郡 -> 学校 -> 部門 -> 教室) に基づいてアクセス権が付与されます。

したがって、部門にアクセスできるユーザーは、その部門内のすべての教室にアクセスできます。

私の質問は、このアクセス許可システムをクライアント間で構成可能にする方法です。アプリケーションは、任意のレベルを定義する新しいクライアントを作成する必要があります (例: 国 -> 州 -> 市 -> 学校 -> クラス)。

良いアプローチとは何かについてのアイデアはありますか?

4

1 に答える 1

1

新しいレベルをプレフィックス ツリーに格納するのはどうでしょうか。各レベルをツリーのブランチのノードとして使用できます。

新しいユーザーが新しいレベルを定義したい場合、プレフィックス ツリーはユーザーが属するレベルから更新されます。問題が、ユーザーが属するレベルのサブブランチのユーザーに可視性を与えることだけである場合、これは機能するはずです。

おそらく直感的ではない同様のアプローチは、各レベルに数字(または英数字の値)を与えることです。これにより、最終的に、例のレベル「状態」に関連付けられたユーザーのレベルコードは23になります(たとえば、「ex-country」: 2 および「state」: 3) と言って、プレフィックス 23 で始まるサブレベルを追加できるようにします。

于 2012-09-18T15:23:23.973 に答える