3

ドキュメント指向のアプリケーションを開発しており、ドキュメントへのユーザー アクセスを管理する必要があります。ユーザー認証を処理するモジュールと、データ ストアでのドキュメントの CRUD 操作を処理する別のモジュールがあります。ユーザーが認証されたら、ユーザーの権限に基づいて、ユーザーがドキュメントに対して実行できる操作と実行できない操作を強制する必要があります。これら 2 つの部分を統合するために考えられる最良のオプションは、データ API を複製するが、認証されたユーザーをパラメーターとして受け取る別のモジュールを作成することです。モジュールは認証チェックを auth モジュールに委譲し、ドキュメント操作をデータ アクセス モジュールに委譲します。何かのようなもの:

 -module(auth_data_access).

 % User is authenticated (logged into the system)
 % save_doc validates if user is allowed to save the given document and if so
 % saves it returning ok, else returns {error, permission_denied}
 save_doc(Doc, User) ->
    case auth:save_allowed(Doc, User) of
       ok ->
          data_access:save_doc(Doc);
       denied ->
          {error, permission_denied}
     end
  end. 

これを処理できるより良い方法はありますか?

4

1 に答える 1

0

「Erlangの多くの条件をエレガントにチェックするにはどうすればよいですか」に対する私の回答によると、私は次のようなものを好みます

save_doc(Doc, User) ->
    ok = auth:save_allowed(Doc, User),
    data_access:save_doc(Doc).
于 2010-01-13T12:13:42.220 に答える