| 1 | #!/bin/bash |
| 2 | |
| 3 | USERNM=$1 |
| 4 | REALNM=$2 |
| 5 | EMAILADDR=$3 |
| 6 | |
| 7 | if test -z "$USERNM"; then |
| 8 | echo Usage: create-user-wrapper USERNAME \'NAME SURNAME\' [EMAIL] |
| 9 | exit 1 |
| 10 | fi |
| 11 | |
| 12 | if test -z "$REALNM"; then |
| 13 | echo Usage: create-user-wrapper USERNAME \'NAME SURNAME\' [EMAIL] |
| 14 | exit 1 |
| 15 | fi |
| 16 | |
| 17 | INITPW=$(sudo -u hcoop psql hcoop_hcoop -tc "select unix_passwd from MemberApp where name = '${USERNM}';") |
| 18 | |
| 19 | |
| 20 | # |
| 21 | # Create user |
| 22 | # |
| 23 | /afs/hcoop.net/common/etc/scripts/create-user $USERNM || \ |
| 24 | ( echo "create-user $USERNM failed" && exit 2 ) |
| 25 | |
| 26 | # |
| 27 | # Entry in LDAP is created, set real name |
| 28 | # |
| 29 | #echo " |
| 30 | #dn: uid=$USERNM,ou=People,dc=hcoop,dc=net |
| 31 | #changetype: modify |
| 32 | #replace: gecos |
| 33 | #gecos: $REALNM |
| 34 | #" | sudo ldapmodify -x -D cn=admin,dc=hcoop,dc=net -y /etc/ldap.secret || \ |
| 35 | # (echo Error modifying LDAP entry && exit 3 ) |
| 36 | |
| 37 | # |
| 38 | # Now set the password |
| 39 | # |
| 40 | if test -z "$INITPW"; then |
| 41 | echo "Skipping password set from $PWFILE (doesn't exist or permission denied)" |
| 42 | #exit 4 |
| 43 | else |
| 44 | echo Setting password from database |
| 45 | actual_user=`whoami` |
| 46 | sudo sh -c "echo $INITPW | tee -| /afs/hcoop.net/common/etc/scripts/change-user-password $USERNM" || \ |
| 47 | ( echo "echo XXX | tee - | change-user-password $USERNM failed" && exit 5 ) |
| 48 | fi |
| 49 | |
| 50 | |
| 51 | # |
| 52 | # Set email forwarding |
| 53 | # |
| 54 | if test -z "$EMAILADDR"; then |
| 55 | echo "Skipping email forwarding, no email address was specified." |
| 56 | else |
| 57 | echo setting email forward to "$EMAILADDR" |
| 58 | FORWARD_PATH=$(sh -c "echo ~$USERNM/.public/.forward") |
| 59 | echo "$EMAILADDR" > $FORWARD_PATH || \ |
| 60 | ( echo "Failed to set forward address" && exit 6 ) |
| 61 | chown $USERNM $FORWARD_PATH |
| 62 | fi |
| 63 | |
| 64 | # |
| 65 | # Done |
| 66 | # |
| 67 | echo All done. |
| 68 | |