Project

General

Profile

Bug(バグ) #3213

opAccessControlRecordInterface は isAllowed() メソッドを実装していることを保証していない

Added by Yuya Watanabe about 10 years ago. Updated almost 3 years ago.

Status:
New(新規)
Priority:
Low(低め)
Assignee:
-
Target version:
Start date:
2012-09-27
Due date:
% Done:

0%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

Description

概要

opAccessControlRecordInterface は isAllowed() メソッドを実装していることを保証していない
具体的には下記コード部で opAccessControlRecordInterface のインスタンスかどうかで処理を分岐しているが,
opAccessControlRecordInterface が保証しているのは generateRoleId() メソッドであり, isAllowed() を呼び出せる保証がない.

lib/routing/opDynamicAclRoute.class.php

 32     if ($result instanceof opAccessControlRecordInterface)
 33     {
 34       if (!$result->isAllowed($this->getCurrentMember(), $this->options['privilege']))

lib/util/opAccessControlRecordInterface.class.php

 18 interface opAccessControlRecordInterface                                            
 19 {                                                                                   
...
 27   public function generateRoleId(Member $member);
 28 }

実際に isAllowed(Member $member, $privilege) が実装されているのは opDoctrineRecord クラスである.

lib/util/opDoctrineRecord.class.php
156:  public function isAllowed(Member $member, $privilege)

修正案

  • opAccessControlRecordInterface インタフェースに isAllowed() メソッドを追加する.
  • opDynamicAclRoute クラス内での isAllowed() を利用する分岐で opDoctrineRecord クラスを継承したクラスであるかについてチェックする

Related issues

Related to OpenPNE 3 - Enhancement(機能追加・改善) #556: Change opDynamicAclRoute not to use ACL Builder if the protected model class implements opAccessControlRecordInterface (opDynamicAclRoute で保護するモデルクラスが opAccessControlRecordInterface を実装している場合は ACL Builder を使わないようにする) Fixed(完了) 2010-02-02

History

#1 Updated by Chiharu Nakajima almost 8 years ago

  • Priority changed from Normal(通常) to Low(低め)

#2 Updated by Chiharu Nakajima almost 8 years ago

このチケットの内容は下記の項目に該当する不具合であるため、一旦優先度を下げます。
・未対応でもユーザーに影響が少ない不具合(回避可能な不具合である等)

#3 Updated by kaoru n almost 3 years ago

  • Target version set to OpenPNE 3.10.x

Also available in: Atom PDF