ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#2113 closed defect (fixed)

BIZ:グループの管理者が SNS を退会するとグループを削除できなくなる

Reported by: kiwa Owned by: shingo
Priority: minor Milestone: OpenPNE2.12.4
Component: pne-biz Version: 2.10.x & 2.12.x & 2.14.x
Keywords: OpenPNE2.10.10 OpenPNE2.13.2 Cc:

Description (last modified by kudo)

■現象

BIZ:グループの管理者が SNS を退会するとグループを削除できなくなる。

■原因

グループの管理者が退会した場合でも、コミュニティと違って管理者交代などの救済措置が用意されていないため、グループの編集・削除がおこなえない。

■修正内容

グループの管理者のSNS退会時、 biz_group_member から当該メンバーの情報を削除し、グループ内のメンバーのうち最も早く参加したメンバー(biz_group_member_id が若いメンバー)を管理者に変更し、管理者交代通知メールを新しい管理者へ送信するようにした。

ただし、退会者しか所属していなかったグループは、メンバー退会時に削除される。

■関連情報

元のDescription

http://sns.openpne.jp/?m=pc&a=page_c_topic_detail&target_c_commu_topic_id=3331 より転記

OpenPNE-2.10.3を利用しています。

BIZのグループのことで質問があります。

グループの管理者を強制退会させたため、グループ自体を削除できなくなりました。

どうすれば、グループを削除できるのでしょうか?
ご存知の方がいらしたら、ぜひ、教えてください。

Change History (26)

comment:1 Changed 13 years ago by kiwa

Priority: minormajor

comment:2 Changed 13 years ago by kiwa

Keywords: 再現待ち removed
Priority: majorminor

再現できました

■version

  • 2.12beta
  • 2.10.x
  • 2.8.x

■手順

  1. メンバーAがグループを作成する
  2. 管理画面からメンバーAを強制退会させる
  3. 1で作成したグループが管理者のいない状態で残る
  4. 既存のグループメンバーへの管理者移行・管理画面からのグループ削除機能が存在しないため、グループが削除できない

comment:3 Changed 13 years ago by ogawa

Version: 2.8.x & 2.10.x & 2.11.x2.10.x & 2.12.x & 2.13.x

comment:4 Changed 13 years ago by ogawa

Milestone: OpenPNE2.10.7

comment:5 Changed 13 years ago by ebihara

Keywords: OpenPNE2.10.8 OpenPNE2.13.2 added
Milestone: OpenPNE2.10.7OpenPNE2.12.2

comment:6 Changed 13 years ago by ebihara

Keywords: OpenPNE2.10.9 added; OpenPNE2.10.8 removed
Milestone: OpenPNE2.12.2OpenPNE2.12.3

comment:7 Changed 13 years ago by ebihara

Keywords: OpenPNE2.10.10 added; OpenPNE2.10.9 removed
Milestone: OpenPNE2.12.3OpenPNE2.12.4

comment:8 Changed 13 years ago by kiwa

Keywords: OpenPNE2.13.3 added; OpenPNE2.13.2 removed

comment:9 Changed 12 years ago by shingo

Owner: changed from nobody to shingo
Status: newassigned

修正します。

comment:10 Changed 12 years ago by kiwa

Keywords: OpenPNE2.13.2 added; OpenPNE2.13.3 removed

comment:11 Changed 12 years ago by shingo

Description: modified (diff)
Keywords: OpenPNE2.13.2 確認待ち added; OpenPNE2.13.2 removed

以下のリビジョンで修正しました。ご確認ください。

comment:12 Changed 12 years ago by ebihara

Keywords: OpenPNE2.13.2 確認中 added; OpenPNE2.13.2 確認待ち removed

keywords は「確認中」としてください。

comment:13 Changed 12 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed
  • 削除対象のメンバーしか所属していないグループが存在した場合、そのグループが削除されることなく残ってしまいます。
  • db_common_delete_c_member() 内: 文を複数行に渡って記述する場合、文字列結合演算子(.)を代入演算子(=)に揃えて記述することを推奨します。
    583         $sql = 'SELECT c_member_id FROM biz_group_member WHERE biz_group_id = ?'.
    584             ' ORDER BY biz_group_member_id';
    
    参考:http://framework.zend.com/manual/ja/coding-standard.coding-style.html#coding-standard.coding-style.strings.string-concatenation
     文字列を "." 演算子で連結する際には、コードを読みやすくするために ひとつの文を複数行に分けることもできます。そのような場合は、 2 行目以降の行頭にスペースを入れ、各行の "." 演算子が最初の行の "=" 演算子と同じ位置にくるようにしなければなりません。
    
    $sql = "SELECT `id`, `name` FROM `people` "
         . "WHERE `name` = 'Susan' "
         . "ORDER BY `name` ASC ";
    
  • db_common_delete_c_member() 内: do_common_send_mail_biz_group_admin_change() をコールする際、引数を intval() によって型変換していますが、これはあまり好ましくないのではないかという気がします。htmlspecialchars() 関数によるエスケープなどにも同じことが言えますが、このような処理は、変換後の値を用いる直前におこなうようにするのが望ましいです。 ※int型への型変換だとデメリットを感じにくいとは思いますが。。。
    588             do_common_send_mail_biz_group_admin_change(intval($new_admin_id), intval($biz_group['biz_group_id']));
    
    参考:http://ml.php.gr.jp/pipermail/php-users/2008-February/033747.html
    > $val=htmlspecialchars($_POST['input'],ENT_QUOTES,'SJIS');
    
    あと、これも定石ですが、htmlspecialcharsはHTML出力の直前に
    かけるようにしてください。
    頭っからエスケープしたり、その値をDBに突っ込んだりすると、作った
    直後は良くてもそのうち面倒なことになりかねないので。
    
  • do_common_send_mail_biz_group_admin_change() 内: $biz_group_member_to と 代入演算子(=)の間に不要と思われるスペースが1個余分に存在します。
    875     $biz_group_member_to  = $biz_group_member = db_member_c_member4c_member_id($biz_group_id_to, true);
    
  • do_common_send_mail_biz_group_admin_change() 内: 関数内で参照していない変数 $biz_group_member への代入があります。
    875     $biz_group_member_to  = $biz_group_member = db_member_c_member4c_member_id($biz_group_id_to, true);
    
  • do_common_send_mail_biz_group_admin_change() 内: この $to_address の初期化は不要です。
    877     $to_address = ''; 
    

comment:14 in reply to:  12 Changed 12 years ago by shingo

Replying to ebihara:

keywords は「確認中」としてください。

了解です。

comment:15 Changed 12 years ago by shingo

Keywords: 確認中 added; 差し戻し removed

comment:16 in reply to:  15 Changed 12 years ago by shingo

Replying to shingo:「確認」は終わってました。訂正します。

comment:17 Changed 12 years ago by shingo

再度修正します。

comment:18 Changed 12 years ago by shingo

Description: modified (diff)

comment:19 Changed 12 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed
  • 2.10.x への修正に存在する、コミュニティ管理者交代処理の不要な型変換の除去などが 2.12.x と trunk のコードに対しておこなわれていません
  • 2.10.x への修正に存在する、不要な $to_address の初期化の除去などが 2.12.x と trunk のコードに対しておこなわれていません。また、 2.12.x と trunk には不要なスペースなどが散見されます

comment:20 Changed 12 years ago by shingo

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで修正しました。ご確認ください。

comment:21 Changed 12 years ago by ebihara

Keywords: テスト待ち added; 確認中 removed

グループの画像が削除されない問題については #2996 で対応するとのことです。

このチケットの範囲の修正は特に問題ないと思います。

comment:22 Changed 12 years ago by kiwa

Keywords: テスト待ち removed
Resolution: fixed
Status: assignedclosed

確認しました。問題ありません。

comment:23 Changed 12 years ago by ebihara

Description: modified (diff)
Summary: BIZ:グループの管理人を強制退会させるとグループが削除できないBIZ:グループの管理人が SNS を退会するとグループが削除できなくなる

本現象は強制退会に限らないため Summary と Description を変更しました。

comment:24 Changed 12 years ago by ebihara

Description: modified (diff)
Summary: BIZ:グループの管理人が SNS を退会するとグループが削除できなくなるBIZ:グループの管理人が SNS を退会するとグループを削除できなくなる

comment:25 Changed 12 years ago by ebihara

Description: modified (diff)
Summary: BIZ:グループの管理人が SNS を退会するとグループを削除できなくなるBIZ:グループの管理者が SNS を退会するとグループを削除できなくなる

「管理人」ではなく正しくは「管理者」なので、Summary と Description を修正しました。

comment:26 Changed 12 years ago by kudo

Description: modified (diff)
Note: See TracTickets for help on using tickets.