操作
Bug(バグ) #3936
未完了SNSメンバーによるアプリ追加を許可しても「新しいアプリをインストールする」のリンクが表示されない
開始日:
2016-04-27
期日:
進捗率:
50%
予定工数:
3.6 で発生するか:
Yes (はい)
[QA]バグ通知済:
いいえ
3.8 で発生するか:
Unknown (未調査)
説明
Overview (現象)¶
管理画面から opOpenSocialPlugin の「アプリ設定」(/pc_backend.php/opOpenSocialPlugin) にある「SNSメンバーのアプリ追加を許可」を「許可」または「SNS管理者の許可が必要」にセットすると、管理画面だけでなく SNS メンバーが OpenSocial アプリをインストールすることができるようになる。
しかし、「アプリを新しく追加する」(/application/install) のページへ移動するためのリンクが、すでにアプリを追加しているメンバーにしか表示されないため、SNS メンバーが新たにアプリをインストールしたい場合には既にインストールされている他の適当なアプリを追加する必要がある。
アプリが追加されていないメンバーの表示:
アプリが追加されているメンバーの表示:
Causes (原因)¶
source:apps/pc_frontend/modules/application/templates/listSuccess.php@6d81bffd#L31
<?php if ($isOwner && isset($memberApplications) && count($memberApplications)) : ?>
<?php echo sortable_element('order', array(
'url' => '@application_sort',
'tag' => 'div',
'only' => 'sortable',
'with' => 'Sortable.serialize("order")+"&'.urlencode($form->getCSRFFieldName()).'='.urlencode($form->getCSRFToken()).'"'
)); ?>
<div class="moreInfo">
<ul class="moreInfo">
<li>
<?php echo link_to(__('App Gallery'), '@application_gallery') ?>
<?php if ($isOwner): ?>
<?php if ($isInstallApp): ?>
<li><?php echo link_to(__('Install new App'), '@application_install') ?></li>
<?php endif; ?>
<?php if ($isInstalledApp): ?>
<li><?php echo link_to(__('Apps Installed by You'), '@application_installed_list') ?></li>
<?php endif; ?>
<?php endif; ?>
</li>
</ul>
</div>
<?php endif; ?>
上記のコードのうち sortable_element
はメンバーが持っているアプリケーションを並べ替えるために必要な部分となっているが、div.moreInfo
に表示される項目についてはメンバーがアプリケーションを持っているか否かは関係なく $isOwner
が true であれば表示すべき部分であるため、この if の条件が適切でないことが原因であるといえる。
Way to fix (修正内容)¶
メンバーがアプリケーションを持っているか否かに関わらず $isOwner
が true であれば div.moreInfo
を表示する
ファイル
操作