プロジェクト

全般

プロフィール

Backport(バックポート) #3216

完了

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

Yuya Watanabe さんが約12年前に追加. 11年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Low(低め)
担当者:
対象バージョン:
開始日:
2012-07-24
期日:
進捗率:

100%

予定工数:

説明

概要

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

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

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: "メンバーの設定を許可する" 
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全体に公開)" 

確認バージョン

OpenPNE 3.8.0
OpenPNE 3.6.4

原因

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

lib/model/doctrine/Member.class.php

 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     }

修正案

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

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;
     }
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'];

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)
     {


関連するチケット 1 (0件未完了1件完了)

関連している OpenPNE 3 - Bug(バグ) #3130: 管理画面「Web 全体への年齢公開許可設定」および「メンバーのプロフィールページ公開範囲設定」のデフォルト値を変更しても設定に反映されないWon't fix(対応せず)Yuya Watanabe2012-07-24

操作

他の形式にエクスポート: Atom PDF