diff s4-funcs.sh @ 228:ab1693ac909a

Avoid reusing variable
author HIROSE Yuuji <yuuji@gentei.org>
date Mon, 20 Jun 2016 18:56:42 +0859
parents ce24afbd3139
children 787a577cc3ce
line wrap: on
line diff
--- a/s4-funcs.sh	Mon Jun 20 08:01:23 2016 +0859
+++ b/s4-funcs.sh	Mon Jun 20 18:56:42 2016 +0859
@@ -1974,7 +1974,7 @@
 		 gname=(select gname from grp where rowid=$grid)))
 	  a left join user_s on a.name=user_s.name and key='gecos'
 	order by coalesce(val,a.name);"
-  err grpaction: `echo $sql`
+  err grpaction: `echo "$sql"`
   tf=$tmpd/title.$$
   echo "グループ[<a href=\"?grp+$grid\">$grp<a>]参加メンバーに対する操作" > $tf
   cmmsg="<div class=\"fold\">
@@ -1994,15 +1994,15 @@
   myhexteams=$(hexteams "$grp" "$user")
   allhexteams=$(hexteams "$grp")
   if [ -n "$myhexteams" ]; then
-    rmteam="<div class=\"fold\">
+    rmteammsg="<div class=\"fold\">
 `cgi_radio rm rmteam 'id=\"cmrmteam\"'`<label
 for=\"cmrmteam\">下でチェックした人からチーム属性を除去する</label>
-<div>チーム属性:`cgi_select_h rmteam $myhexteams`
+<div>チーム属性:`cgi_select_h rmteam \"2d2d2d\" $myhexteams`
 を除去します: `cgi_checkbox teamconfirm yes` 確認
 <p>この操作による通知は本人に行きません。
 あらかじめ通知するか、登録解除してよい状況かしっかり確認してください。</p>
 </div>
-</div>
+</div><!-- end of $rmteammsg -->
 "
   fi
   b1='<label> <input type="checkbox" name="usel" value="'
@@ -2024,7 +2024,7 @@
 <div>チーム名:`cgi_text team "" 'id="inteam" list="teams"'`
 `cgi_datalist_h teams $allhexteams`
 </div></div>
-${rmteam}
+${rmteammsg}
 <div class="fold">
 `cgi_radio rm send id="sendmsg"`<label
  for="sendmsg">下でチェックした人にメッセージを送信する</label>
@@ -2391,16 +2391,31 @@
 )
 grp_rm_team() (
   # $1=grp-rowid $2=team $3...=user-rowid(s)
-  grp=`getgroupbyid $1`
+  grid=$1
+  qgrp=$(sqlquote "`getgroupbyid $grid`")
   team=$2; shift; shift
-  [ -z "$grid" -o -z "$team" -o -z "$1" ] && return
+  [ -z "$grid" -o -z "$team" ] && return
   { echo "BEGIN;"
     for user; do
       echo "DELETE FROM grp_mem_m\
-	    WHERE gname='$grp'\
+	    WHERE gname=$qgrp \
 	    AND user=(SELECT name FROM user WHERE rowid=$user)\
 	    AND key='team' AND val='$team';"
     done
+    cat<<-EOF
+	DELETE FROM blog_s
+	WHERE rowid=(
+          SELECT rowid
+	  FROM blog_s a
+	  WHERE key='team'
+	    AND id IN (SELECT id FROM blog_s WHERE key='owner' AND val=$qgrp)
+	    AND NOT EXISTS (SELECT * FROM grp_mem_m
+	                    WHERE key='team' AND val=a.val -- a.val=team
+	                      AND gname = (SELECT val FROM blog_s b
+	                                   WHERE a.id=b.id AND key='owner')
+	                    ));
+	EOF
+
     echo "END;"
   } | query
 )

yatex.org