49 lines
1.6 KiB
Bash
Executable File
49 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#% Usage: add-user [-l <login>] [-N <full name>] [-e <email>] [-g <membership group (fatty/starving)]
|
|
#% Adds a user to LDAP. Interactive if parameters not specified on command line
|
|
#% Switches:
|
|
#% -l <login> - Set the user's login name. It will be stored in the 'uid' LDAP field
|
|
#% -N <full name> - Set the full name of the user. It will be stored in the the 'givenName' and 'surname' LDAP fields
|
|
#% -e <email> - Set the email address of the user. It will be stored in the 'mailRoutingAddress' and 'mail' LDAP fields
|
|
#% -g <membership group> - Set the membership group name (starving/fatty). If it's defined then the user will have full hackerspace membership features unlocked (xmpp, vpn and shell)
|
|
. $LIB_DIR/common.sh
|
|
|
|
function readvar() {
|
|
vname=$1
|
|
prompt=${2:-$1}
|
|
echo -n "$prompt: "
|
|
read $vname
|
|
}
|
|
|
|
while getopts l:N:e:g: opt; do case $opt in
|
|
l)
|
|
login="$OPTARG";;
|
|
N)
|
|
cn="$OPTARG";;
|
|
e)
|
|
email="$OPTARG";;
|
|
g)
|
|
membership_group="$OPTARG";;
|
|
--)
|
|
break;;
|
|
*)
|
|
break;;
|
|
esac
|
|
done
|
|
|
|
uid=$((`maxuid`+1))
|
|
[ ! "$login" ] && readvar login "Login"
|
|
[ ! "$cn" ] && readvar cn "Full name"
|
|
[ ! "$email" ] && readvar email "Email"
|
|
[ ! "$membership_group" ] && readvar membership_group "Membership group (starving/fatty), press Enter to not assign a membership group"
|
|
|
|
raw-add-user $login "$cn" "$email"
|
|
add-to-wiki $login
|
|
create-posix-group $login $uid
|
|
|
|
if [ "$membership_group" ]; then
|
|
grant-member-privileges -g $membership_group $login
|
|
fi
|
|
|
|
msg "After commiting, please issue welcome-email $login to activate the mailbox"
|