0

Zend_Acl が必要かどうか確信が持てない役割ベースのパーミッション システムを持っているので、私が正しいかどうか尋ねたいと思います。

問題の Web アプリケーションには個別の管理画面がなく、すべてのコントローラー/アクションに誰でもアクセスできます。ですから、そのようなオープンなシステムで「リソース」と呼べるものを想像することはできません。

ただし、一部のユーザー ロールは、ユーザー ID でフィルタリングされていないグリッドを表示できます。そのため、スーパー管理者はすべてのデータを表示し、「x 管理者」はすべての「x」データを表示します。

この場合、Zend_acl システムは過剰ですか? それがなければ物事は簡単です.init()でユーザーロールを取得し、コントローラーの一部でそれをチェックするだけです.

4

1 に答える 1

4

ZF に何かが存在するからといって、それを使用する必要があるわけではありません。ボーナスポイントはもらえません。ユースケースに対して Zend_Acl が過剰であると感じた場合は、より単純なアプローチを使用してください。それは完全に受け入れられます。

実際、私のアプリの 1 つでActionHelper、ユーザーの役割を確認するために を使用しています。requireRole()ヘルパーには、必要なロールを文字列として受け入れる単一のメソッドがあります。アクションを制限する必要がある場合、最初にこのヘルパー メソッドを呼び出すだけです。コントローラー全体を制限する必要がある場合は、呼び出しをinit()メソッドに配置します。欠点は、アクセス制御が集中化されていないことです。

別のアプリでは、アクセス制限が必要なコントローラーが 1 つしかありません。そのアプリでControllerPluginは、要求されたコントローラーが制限されたコントローラーであるかどうか、およびユーザーがそのために必要な役割を持っているかどうかを確認する を使用しました。これも問題なく機能し、必要に応じてチェックにコントローラーを追加することもできました。

したがって、適切なものを使用してください:)

于 2009-12-17T15:44:43.903 に答える