プロジェクト

全般

プロフィール

Bug(バグ) #3130

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>

戻る