中垣さん katoさん
分かりやすい説明ありがとうございます。すっごいすっきりしました。
ロールはグループテーブルのフィールドの一つだったとは・・・ロールバックアクセスコントロールという名前に惑わされていましたがそういう事だったんで
すね。
自分のタラの頭じゃロールの上手な使い方を実装含めて考えつかないのでおとなしくグループ単位での制御で考えてみます。
あと自分はとりあえずGAE環境です。たとえば使うことが前提のグループなどauth.add_group('driver', 'common
driver')の処理はアップロードしたら最初にしておきたいと思っています。
そういう初期化ファイルなどはweb2pyの中には存在しますか?db.pyあたりで処理すべきでしょうか?
On Feb 9, 3:32 am, kato <
hi21alt...@yahoo.co.jp> wrote:
> 川島さん
>
> 中垣さんが書かれていることで大体合っているのですが、web2py では グループとロールは全く同一ではありません。
> アクセス制御のテーブル関連図を確認してもらえれば分かるのですが、グループテーブルのフィールドとしてロールが存在します。
http://docs1.erp2py.com/web2py_ac/summary/summary.html#id5
>
> 実装でどのようにするかで決まりますが、 auth.has_membership(group_id, user_id, role)
> というメソッドがあります。
> このメソッドはユーザIDがどのグループIDに属しているか、もしくはどのロールに属しているかを判定します。
> ロールを指定した場合は更に auth.id_group(role) を呼んで、どのグループに属しているか判定します。
>
> つまりロールはグループを越える概念として存在しています。しかし現実の auth.id_group(role) は、同じロールを持っている
> グループが複数存在する場合、最初のグループしか判定しません。
>
> このためロールを使って難しい設定をすると、上手く動かない可能性があります。グループ単位で制御するというのが、
> 現実的な実装方法だと思います。
>
> kato
>
> 2012年2月9日0:07 中垣健志 <
nakaken0...@gmail.com>:
>
>
>
>
>
>
>
> > 中垣です。
>
> > その章は自分が翻訳したのですが、正直よくわかっていないところもありますw。そんな中でも「こうじゃないかな」と思うところで回答してみます。間違いがあれば 指摘してください
> > >> みなさま
>
> > 「ユーザーの太郎さんは運転手というグループに属している」というのはOKだと思います。
>
> > しかし「運転免許」というパーミッションは太郎さんではなく運転手というグループに与えられているものです。なので太郎さんは、運転手というグループに属してい る間は車を運転できますがグループを外れると運転できなくなります。
>
> > また、メンバーシップはユーザーとグループの多対多の関連を表すための概念です。多対多とは、「太郎さんは運転手にも船舶運転手にも属している」し「太郎さんと 次郎さんは運転手に属している」みたいなものです。
> > そしてここでの運転手という概念は一般的な用語としてはロールですが、web2pyではそれをグループと呼んでいると思ってもらっていいと思います。
>
> > 2012年2月8日23:41 kkawashima <
gs2saf...@gmail.com>:
> > > チュートリアルの件ではお世話になりました川島です。
> > > さっそくぽちぽちやってみてるところです。
>
> > > どうにも理解できないのでどなたか手助けくださいませんか。
> > >
https://sites.google.com/site/web2pyjapan/book/08
> > > を読んでいてRBAC制御についてなんとなく理解できましたが、
> > > auth_group,auth_membership,auth_permissionの関係がよくわかりません。
> > > 今のとこの理解だと
> > > auth_userはいくつかのgroupに属していてそのグループには何かしらのパーミッションが設定されてる
> > > 例えるとユーザの太郎さんは運転手というグループに属していて運転免許というパーミッションを持ってる(という感じでしょうか)なので太郎さんは運転が
> > > できる。
> > > ではメンバーシップとはどのように関わってくるのでしょうか。
>
> > > あとロールという言葉が出てきたときはグループのことを指していると思って間違いないでしょうか。
> > > 何かすっごい勘違いしていたらすみません。。。
>
> > --
> > NAKAGAKI Kenji
> >
mail:nakaken0...@gmail.com