annotate scripts/add-user-csv.sh @ 577:67ecd5901590

Inhibit non-group admin from cloning group
author HIROSE Yuuji <yuuji@gentei.org>
date Fri, 14 Jun 2019 09:27:11 +0900
parents 7ab2ceb1b8dd
children f68f13fb226b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
544
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
1 #!/bin/sh
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
2
545
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
3 if [ -z "$1" ]; then
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
4 cat<<-EOF >&2
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
5 Usage: ./add-user-csv.sh CSVfile >&2
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
6 Csv file should be the form of:
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
7 username(email),notify-email,gecos,IniPassword
563
7ab2ceb1b8dd $DISABLED controls password disabling
HIROSE Yuuji <yuuji@gentei.org>
parents: 560
diff changeset
8 Set $DISABLED for setting disabled password
545
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
9 EOF
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
10 exit 1
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
11 fi
7cd9e895fa09 Supply usage when no argument supplied
HIROSE Yuuji <yuuji@gentei.org>
parents: 544
diff changeset
12
544
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
13 target=$(cd `dirname "$1"`; pwd)/`basename $1`
563
7ab2ceb1b8dd $DISABLED controls password disabling
HIROSE Yuuji <yuuji@gentei.org>
parents: 560
diff changeset
14 encp=${DISABLED:+DisabledPassword}
544
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
15
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
16 cd `dirname $0`/..
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
17 if ! . ./s4-funcs.sh; then
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
18 echo "Cannot find s4-funcs.sh, which should be located in $mydir/.."
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
19 exit 1
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
20 fi
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
21
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
22 sq $db<<-EOF |
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
23 .mode csv
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
24 CREATE TEMPORARY TABLE _newuser(user,email,gecos,inipswd);
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
25 .import $target _newuser
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
26 .mode list
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
27 .sepa ,
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
28 SELECT * FROM _newuser n
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
29 WHERE NOT EXISTS (SELECT * FROM user WHERE name=n.user);
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
30 EOF
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
31 while IFS=, read user email gecos inipswd
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
32 do
563
7ab2ceb1b8dd $DISABLED controls password disabling
HIROSE Yuuji <yuuji@gentei.org>
parents: 560
diff changeset
33 encpswd=${encp:-`mycrypt "$inipswd" 'StOpmE'`}
544
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
34 case "$user" in
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
35 *\'*) echo "Skipping [$user]"
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
36 continue ;;
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
37 *@*) ;; # OK
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
38 *) echo "Skipping [$user] because of lacking email pattern" >&2
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
39 continue ;;
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
40 esac
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
41 # echo "$user" "$user" "$inipswd" "$encpswd"
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
42 query "INSERT INTO user VALUES('$user');" &&
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
43 echo Adding $user
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
44 dbsetbyid user "$user" email "$email"
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
45 dbsetbyid user "$user" gecos "$gecos"
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
46 dbsetbyid user "$user" pswd "$encpswd"
6039630ea2f5 add add-user-csv.sh
HIROSE Yuuji <yuuji@gentei.org>
parents:
diff changeset
47 done

yatex.org