プロジェクトの 1 つで、authlogic の上に acl9 を使用しています。私はacl9のアプローチが好きですが、それほど単純ではないことをやろうとしていると思います(不可能とは言えません)。
使いやすさの理由から、インライン管理パネルが必要です。たとえば、リソース オークションとネストされたリソース オークション/入札を取得したとします。通常のユーザーがオークション/1 (1=id) にいる場合、「通常の」もの (説明、価格など) が表示され、同じサイトの特権ユーザーには、オークションを編集するための追加のリンク (= オークション/) が表示されます。 1/編集)。そして、ここから楽しみが始まります。
よく調べていなかったか、場所を間違っていたのかもしれませんが、現在のユーザーが編集操作を許可されているかどうかを判断する方法が見つかりませんでした。明らかに、すべての人にリンクを表示し、編集アクションで通常のユーザーを拒否できますが、それは実行可能なオプションではありません。ここで私を悩ませているのは、情報が既にシステムにあり (以下のaccess_control
ブロックを参照)、それを使用する方法が見つからないように見えることです。これは非常に多くのレベルで DRY ではありません。
access_control do
allow :privileged, :to => [:index, :show, :edit, :update]
allow anonymous, :to => [:new, :show, :create]
end
auctions/1/bids/2/edit
これはまったく別のコントローラーにあるため、ユーザーがどの権限を持っているかを判断したい場合はさらに悪化します。
事前にその情報にアクセスしてから、編集用のリンクを表示するかどうかを決定するにはどうすればよいですか? それは(acl9自体を変更せずに)不可能なのですか、それとも十分に調べていませんでしたか?私の要件をよりよく満たす認証プラグインはありますか?