プロジェクト

全般

プロフィール

Backport(バックポート) #3216

Yuya Watanabe さんが11年以上前に更新

h3. 概要 

 管理画面「Web 全体への年齢公開許可設定」および「メンバーのプロフィールページ公開範囲設定」のデフォルト値を変更しても設定に反映されない. 全体への年齢公開許可設定」のデフォルト値を変更しても設定に反映されない. 

 具体的には下記ファイルの 173 行目および 160 行目 を変更しても 行目を変更しても pc_frontend 側で設定が反映されていない. 


 lib/config/config/sns_config.yml  
 <pre> 
 lib/config/config/sns_config.yml 
 166     is_allow_web_public_flag_age: 
 167       Name:         "is_allow_web_public_flag_age" 
 168       Caption:      "Web 全体への年齢公開許可設定" 
 169       Help:         "メンバーが年齢を Web 全体に公開できるようにするかどうかを設定します" 
 170       FormType:     "radio" 
 171       ValueType:    "text" 
 172       IsRequired: true 
 173       Default:      0 
 174       Choices: 
 175         0: "メンバーの設定を許可しない" 
 176         1: "メンバーの設定を許可する" 
 </pre> 

 <pre> 
 lib/config/config/sns_config.yml 
 153     is_allow_config_public_flag_profile_page: 
 154       Name:         "is_allow_config_public_flag_profile_page" 
 155       Caption:      "メンバーのプロフィールページ公開範囲設定" 
 156       Help:         "メンバーがプロフィールページの公開範囲を変更できるようにするどうかを設定します" 
 157       FormType:     "radio" 
 158       ValueType:    "text" 
 159       IsRequired: true 
 160       Default:      1 
 161       Choices: 
 162         0: "メンバーの設定を許可する" 
 163         1: "メンバーの設定を許可しない(全員に公開)" 
 164         4: "メンバーの設定を許可しない(Web全体に公開)" 
 </pre> 

 h3. 確認バージョン 

 OpenPNE 3.8.0 
 OpenPNE 3.6.4 

 h3. 原因 

 年齢を得るメソッドで設定ファイルが考慮されていない. 

 lib/model/doctrine/Member.class.php 
 <pre> 
  56     public function getAge($viewableCheck = false, $myMemberId = null) 
  57     { 
 ... 
  82       if (ProfileTable::PUBLIC_FLAG_WEB == $publicFlag && Doctrine::getTable('SnsConfig')->get('is_allow_web_public_flag_age')) 
  83       { 
  84         return $age; 
  85       } 
 </pre> 

 h3. 修正案 

 デフォルト値を考慮した実装に変更する. 

 <pre> 
 diff --git a/lib/model/doctrine/Member.class.php b/lib/model/doctrine/Member.class.php 
 index 5dd0d1a..b1a7d5f 100644 
 --- a/lib/model/doctrine/Member.class.php 
 +++ b/lib/model/doctrine/Member.class.php 
 @@ -79,7 +79,7 @@ class Member extends BaseMember implements opAccessControlRecordInterface 
        return $age; 
      } 
 
 -      if (ProfileTable::PUBLIC_FLAG_WEB == $publicFlag && Doctrine::getTable('SnsConfig')->get('is_allow_web_public_flag_age')) 
 +      if (ProfileTable::PUBLIC_FLAG_WEB == $publicFlag && opConfig::get('is_allow_web_public_flag_age')) 
      { 
        return $age; 
      } 
 </pre> 

 <pre> 
 diff --git a/lib/form/MemberConfigForm/MemberConfigPublicFlagForm.class.php b/lib/form/MemberConfigForm/MemberConfigPublicFlagForm.class.php 
 index 69fd9d9..9047bae 100644 
 --- a/lib/form/MemberConfigForm/MemberConfigPublicFlagForm.class.php 
 +++ b/lib/form/MemberConfigForm/MemberConfigPublicFlagForm.class.php 
 @@ -23,12 +23,12 @@ class MemberConfigPublicFlagForm extends MemberConfigForm 
    { 
      parent::__construct($member, $options, $CSRFSecret); 
 
 -      if (Doctrine::getTable('SnsConfig')->get('is_allow_config_public_flag_profile_page')) 
 +      if (opConfig::get('is_allow_config_public_flag_profile_page')) 
      { 
        unset($this['profile_page_public_flag']); 
      } 
 
 -      if (!Doctrine::getTable('SnsConfig')->get('is_allow_web_public_flag_age')) 
 +      if (!opConfig::get('is_allow_web_public_flag_age')) 
      { 
        $widget = $this->widgetSchema['age_public_flag']; 
 
 </pre> 

 <pre> 
 diff --git a/lib/model/doctrine/MemberTable.class.php b/lib/model/doctrine/MemberTable.class.php 
 index 8ad8a28..0c995a9 100644 
 --- a/lib/model/doctrine/MemberTable.class.php 
 +++ b/lib/model/doctrine/MemberTable.class.php 
 @@ -116,9 +116,9 @@ class MemberTable extends opAccessControlDoctrineTable 
        ->allow('self', $resource, 'edit') 
        ->deny('blocked'); 
 
 -      if (Doctrine::getTable('SnsConfig')->get('is_allow_config_public_flag_profile_page')) 
 +      if (opConfig::get('is_allow_config_public_flag_profile_page')) 
      { 
 -        $config = Doctrine::getTable('SnsConfig')->get('is_allow_config_public_flag_profile_page'); 
 +        $config = opConfig::get('is_allow_config_public_flag_profile_page'); 
      } 
      elseif ($resource) 
      { 

 </pre>

戻る