Bug(バグ) #3936
未完了SNSメンバーによるアプリ追加を許可しても「新しいアプリをインストールする」のリンクが表示されない
50%
説明
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
を表示する
ファイル
Youichi Kimura さんが8年以上前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 担当者 を Youichi Kimura にセット
- 進捗率 を 0 から 50 に変更
下記 Pull Request にて修正しました
https://github.com/openpne-ospt/opOpenSocialPlugin/pull/25