# HG changeset patch # User HIROSE Yuuji # Date 1588860213 -32400 # Node ID d9bce34a863ba725e1408b0d84a97c557a0f1d0d # Parent 21522dcada924b47554ab1278c5c12a6421b66b3 Email4group should use same algorithm as email4groupbyuid diff -r 21522dcada92 -r d9bce34a863b s4-funcs.sh --- a/s4-funcs.sh Thu May 07 20:47:08 2020 +0900 +++ b/s4-funcs.sh Thu May 07 23:03:33 2020 +0900 @@ -1401,34 +1401,30 @@ qgrp=`sqlquote "$1"`; shift users=`for i; do sqlquote "$i"; done` users=`echo $users|tr ' ' ','` - sql="select coalesce(s.val, g.user) from grp_mem g - left join grp_mem_s s on g.gname=s.gname and g.user=s.user - and s.key='email' - where g.gname=$qgrp and g.user in ($users);" - query "$sql" -} -email4groupbyuid() { - # Get for-$1=group email address(es) for $2...=user-ids - qgrp=`sqlquote "$1"`; shift - uids=`echo "$@"` - uids=`echo $uids|tr ' ' ','` sql="WITH grpemails AS ( SELECT gname, user, val email FROM grp_mem NATURAL JOIN grp_mem_s WHERE key='email' AND gname=$qgrp), useremails AS ( - SELECT user.rowid rid, user.name, val email + SELECT user.name, val email FROM user LEFT JOIN user_m ON user.name=user_m.name AND user_m.key='email') SELECT DISTINCT coalesce(g.email, u.email, u.name) FROM useremails u LEFT JOIN grpemails g ON u.name=g.user - WHERE u.rid in ($uids);" - ## err email4gByid `echo $sql` + WHERE u.name in ($users);" query "$sql" } +email4groupbyuid() { + # Get for-$1=group email address(es) for $2...=user-ids + g=$1; shift + uids=`echo "$@"` + uids=`echo $uids|tr ' ' ','` + sql="SELECT DISTINCT name FROM user WHERE rowid IN ($uids);" + email4group "$1" `query "$sql"` +} collectmembersbyid() { # Collect user names of group specified by grid rid=${1%%[!0-9]*} # Cleaning