51 lines
2.3 KiB
Bash
Executable File
51 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source ./cgibashopts
|
|
|
|
echo "Content-type:text/html; charset=UTF-8\n\n"
|
|
echo ""
|
|
adminmails='aryak@vern.cc cobra@vern.cc neopenk@vern.cc'
|
|
echo '<link rel="stylesheet" href="/style.css">'
|
|
echo '<title>~vern admins</title>'
|
|
if [[ $FORM_username =~ ^([a-z_][a-z0-9_]{0,30})$ ]] && ! id $FORM_username &> /dev/null; then
|
|
echo "<br>Valid Username <b> $FORM_username </b><br>"
|
|
VALID_USERNAME=1
|
|
else
|
|
id $FORM_username &> /dev/null &&
|
|
echo "<br>Username already taken, try another one and resubmit the form<br>" ||
|
|
echo "<br>Invalid Username, please go back and resubmit the form<br>"
|
|
VALID_USERNAME=0
|
|
fi
|
|
if [[ "$FORM_email" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]; then
|
|
VALID_EMAIL=1
|
|
echo "<br>Valid email address <b> $FORM_email</b><br>"
|
|
else
|
|
VALID_EMAIL=0
|
|
echo "<br>Invalid email address, please go back and resubmit the form<br>"
|
|
fi
|
|
if ! <<< "$FORM_ssh" ssh-keygen -l -f - &> /dev/null; then
|
|
echo "<br>Invalid SSH Key(s), please go back and resubmit the form<br>"
|
|
VALID_SSH=0
|
|
else
|
|
echo "<br>Valid SSH Key(s)<br>"
|
|
VALID_SSH=1
|
|
fi
|
|
echo "<br> Services requested: Tilde Email $FORM_git $FORM_fedi $FORM_matrix<br>"
|
|
|
|
set | grep ^FORM > /home/ak/test
|
|
sshurl=$(echo $FORM_ssh | curl -s -F'file=@-;' https://envs.sh)
|
|
if [[ $VALID_EMAIL == 1 ]] && [[ $VALID_USERNAME == 1 ]] && [[ $VALID_SSH == 1 ]]; then
|
|
echo "<br>Signup Request has been submitted. More information will be sent to $FORM_email after it is approved.<br>"
|
|
echo '<a href=/index.html>🔙 Go home</a>'
|
|
|
|
MAILNUM=$RANDOM
|
|
echo "Subject: New membership request from $FORM_username <$FORM_email>" > /tmp/membershipemail$MAILNUM
|
|
echo "Hello Administrators," >> /tmp/membershipemail$MAILNUM
|
|
echo "There has been a new membership request. Please look at the details below and decide if this is worth approving" >> /tmp/membershipemail$MAILNUM
|
|
echo "SSH Keys: $sshurl" >> /tmp/membershipemail$MAILNUM
|
|
echo "Services requested: $FORM_git $FORM_fedi $FORM_matrix" >> /tmp/membershipemail$MAILNUM
|
|
printf "\nReason for join request: \n $FORM_reason\n" >> /tmp/membershipemail$MAILNUM
|
|
cat /tmp/membershipemail$MAILNUM | s-nail -v -r "mememail@vern.cc" -s "$(head -n1 /tmp/membershipemail$MAILNUM | cut -c9-)" $adminmails &> /dev/null
|
|
else
|
|
echo '<h1> <a href=/signup>some details were wrong/missing. please check and redo the form</a> </h1>'
|
|
fi
|