s4

changeset 646:d9bce34a863b

Email4group should use same algorithm as email4groupbyuid
author HIROSE Yuuji <yuuji@gentei.org>
date Thu, 07 May 2020 23:03:33 +0900
parents 21522dcada92
children a8a5e6437f1a
files s4-funcs.sh
diffstat 1 files changed, 10 insertions(+), 14 deletions(-) [+]
line diff
     1.1 --- a/s4-funcs.sh	Thu May 07 20:47:08 2020 +0900
     1.2 +++ b/s4-funcs.sh	Thu May 07 23:03:33 2020 +0900
     1.3 @@ -1401,34 +1401,30 @@
     1.4    qgrp=`sqlquote "$1"`; shift
     1.5    users=`for i; do sqlquote "$i"; done`
     1.6    users=`echo $users|tr ' ' ','`
     1.7 -  sql="select coalesce(s.val, g.user) from grp_mem g
     1.8 -	left join grp_mem_s s on g.gname=s.gname and g.user=s.user
     1.9 -	and s.key='email'
    1.10 -	where g.gname=$qgrp and g.user in ($users);"
    1.11 -  query "$sql"
    1.12 -}
    1.13 -email4groupbyuid() {
    1.14 -  # Get for-$1=group email address(es) for $2...=user-ids
    1.15 -  qgrp=`sqlquote "$1"`; shift
    1.16 -  uids=`echo "$@"`
    1.17 -  uids=`echo $uids|tr ' ' ','`
    1.18    sql="WITH
    1.19  	grpemails AS (
    1.20  	  SELECT gname, user, val email
    1.21  	  FROM grp_mem NATURAL JOIN grp_mem_s
    1.22  	  WHERE key='email' AND gname=$qgrp),
    1.23  	useremails AS (
    1.24 -	  SELECT user.rowid rid, user.name, val email
    1.25 +	  SELECT user.name, val email
    1.26  	  FROM user
    1.27  	       LEFT JOIN user_m
    1.28  	       ON user.name=user_m.name AND user_m.key='email')
    1.29  	SELECT DISTINCT coalesce(g.email, u.email, u.name)
    1.30  	FROM  useremails u LEFT JOIN grpemails g
    1.31  	      ON u.name=g.user
    1.32 -	WHERE u.rid in ($uids);"
    1.33 -  ## err email4gByid `echo $sql`
    1.34 +	WHERE u.name in ($users);"
    1.35    query "$sql"
    1.36  }
    1.37 +email4groupbyuid() {
    1.38 +  # Get for-$1=group email address(es) for $2...=user-ids
    1.39 +  g=$1; shift
    1.40 +  uids=`echo "$@"`
    1.41 +  uids=`echo $uids|tr ' ' ','`
    1.42 +  sql="SELECT DISTINCT name FROM user WHERE rowid IN ($uids);"
    1.43 +  email4group "$1" `query "$sql"`
    1.44 +}
    1.45  collectmembersbyid() {
    1.46    # Collect user names of group specified by grid
    1.47    rid=${1%%[!0-9]*}		# Cleaning