Add scripts/sendemail.php to send email to a user's address. Updated setup_status_network.sh to create a user with the site's nick, accept site tags, and send a mail to the user (if a template is set)
Email and tag params added to the end: setup_status_net.sh mysite 'My Site' 'owner@example.com' '1user' (If multiple tags are needed, separate them with a pipe "|". Be sure to quote properly!) New parameters for setup.cfg need to be set: export PHPBASE=/var/www/statusnet export WILDCARD=example.net export MAILTEMPLATE=/etc/statusnet/newsite-mail.txt export MAILSUBJECT="Your new StatusNet site" $PHPBASE is the base dir for a callable StatusNet install, used to run command-line scripts for user setup. $WILDCARD is the wildcard domain, needed to build a full server name to pass into command-line scripts. $MAILTEMPLATE points to a file containing an e-mail message template. '$nickname', '$sitename', and '$userpass' can be used in the template for substitution. $MAILSUBJECT is the subject line for said email. To skip sending an email on creation, leave $MAILTEMPLATE blank or point to a non-existing file.
This commit is contained in:
@@ -2,9 +2,22 @@
|
||||
|
||||
source /etc/statusnet/setup.cfg
|
||||
|
||||
export nickname=$1
|
||||
export sitename=$2
|
||||
# setup_status_net.sh mysite 'My Site' 'owner@example.com' '1user'
|
||||
|
||||
export nickname="$1"
|
||||
export sitename="$2"
|
||||
export email="$3"
|
||||
export tags="$4"
|
||||
|
||||
# Fixme: if this is changed later we need to update profile URLs
|
||||
# for the created user.
|
||||
export server="$nickname.$WILDCARD"
|
||||
|
||||
# End-user info
|
||||
export userpass=`$PWDGEN`
|
||||
export roles="administrator moderator owner"
|
||||
|
||||
# DB info
|
||||
export password=`$PWDGEN`
|
||||
export database=$nickname$DBBASE
|
||||
export username=$nickname$USERBASE
|
||||
@@ -21,8 +34,8 @@ mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB << ENDOFCOMMANDS
|
||||
|
||||
GRANT ALL ON $database.* TO '$username'@'localhost' IDENTIFIED BY '$password';
|
||||
GRANT ALL ON $database.* TO '$username'@'%' IDENTIFIED BY '$password';
|
||||
INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created)
|
||||
VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now());
|
||||
INSERT INTO status_network (nickname, dbhost, dbuser, dbpass, dbname, sitename, created, tags)
|
||||
VALUES ('$nickname', '$DBHOSTNAME', '$username', '$password', '$database', '$sitename', now(), '$tags');
|
||||
|
||||
ENDOFCOMMANDS
|
||||
|
||||
@@ -30,3 +43,32 @@ for top in $AVATARBASE $FILEBASE $BACKGROUNDBASE; do
|
||||
mkdir $top/$nickname
|
||||
chmod a+w $top/$nickname
|
||||
done
|
||||
|
||||
php $PHPBASE/scripts/registeruser.php \
|
||||
-s"$server" \
|
||||
-n"$nickname" \
|
||||
-w"$userpass" \
|
||||
-e"$email"
|
||||
|
||||
for role in $roles
|
||||
do
|
||||
php $PHPBASE/scripts/userrole.php \
|
||||
-s"$server" \
|
||||
-n"$nickname" \
|
||||
-r"$role"
|
||||
done
|
||||
|
||||
if [ -f "$MAILTEMPLATE" ]
|
||||
then
|
||||
# fixme how safe is this? are sitenames sanitized?
|
||||
cat $MAILTEMPLATE | \
|
||||
sed "s/\$nickname/$nickname/" | \
|
||||
sed "s/\$sitename/$sitename/" | \
|
||||
sed "s/\$userpass/$userpass/" | \
|
||||
php $PHPBASE/scripts/sendemail.php \
|
||||
-s"$server" \
|
||||
-n"$nickname" \
|
||||
--subject="$MAILSUBJECT"
|
||||
else
|
||||
echo "No mail template, not sending email."
|
||||
fi
|
||||
|
Reference in New Issue
Block a user