diff --git a/Makefile b/Makefile index cadb591d..28b5f87c 100644 --- a/Makefile +++ b/Makefile @@ -50,6 +50,7 @@ install: chmod -R +r /usr/share/${APP} # bash -c "./translate install" /usr/local/bin/${APP}-prepare-scripts + # copy email onion domain to somewhere where it's accessible to users uninstall: rm -f ${PREFIX}/share/${APP}_*.png rm -f ${PREFIX}/share/man/man1/backup.1.gz diff --git a/src/freedombone-base-email b/src/freedombone-base-email index d66e9241..f9cd86d3 100755 --- a/src/freedombone-base-email +++ b/src/freedombone-base-email @@ -225,6 +225,7 @@ function email_create_template { } function create_email_onion_address { + email_hostname='/var/lib/tor/hidden_service_email/hostname' if ! grep -q "hidden_service_email" /etc/tor/torrc; then { echo 'HiddenServiceDir /var/lib/tor/hidden_service_email/'; echo 'HiddenServiceVersion 3'; @@ -238,18 +239,21 @@ function create_email_onion_address { function_check wait_for_onion_service wait_for_onion_service email - if [ ! -f /var/lib/tor/hidden_service_email/hostname ]; then + if [ ! -f $email_hostname ]; then echo $"email onion site hostname not found" systemctl restart tor exit 782352 fi - onion_address=$(cat /var/lib/tor/hidden_service_email/hostname) + onion_address=$(cat $email_hostname) set_completion_param "email onion domain" "${onion_address}" add_email_hostname "$onion_address" else - onion_address=$(cat /var/lib/tor/hidden_service_email/hostname) + onion_address=$(cat $email_hostname) fi + cp $email_hostname /etc/skel/.email_onion_domain + cp $email_hostname "/home/$MY_USERNAME/.email_onion_domain" + chown "$MY_USERNAME":"$MY_USERNAME" "/home/$MY_USERNAME/.email_onion_domain" } function configure_email_onion { diff --git a/src/freedombone-controlpanel-user b/src/freedombone-controlpanel-user index 3acf4e53..c6776b9f 100755 --- a/src/freedombone-controlpanel-user +++ b/src/freedombone-controlpanel-user @@ -852,10 +852,25 @@ function menu_run_client_app { function show_your_email_address { GPG_FINGERPRINT=$(gpg --fingerprint "$GPG_ID" | sed -n '2p' | sed 's/^[ \t]*//') GPG_DATE=$(gpg --fingerprint "$GPG_ID" | grep -i "pub" | head -n 1 | awk -F ' ' '{print $3}') + onion_domain= + if [ -f "$HOME/.email_onion_domain" ]; then + onion_domain=$(cat "$HOME/.email_onion_domain") + fi + if [[ "$HOSTNAME" != *'.onion' && "$onion_domain" ]]; then + msgstr=$"Email Address: $MY_EMAIL_ADDRESS\\n\\nOnion Email: ${USER}@${onion_domain}\\n\\nKey ID: $GPG_ID\\n\\nFingerprint: $GPG_FINGERPRINT\\n\\nCreated: $GPG_DATE" + else + msgstr=$"Email Address: $MY_EMAIL_ADDRESS\\n\\nKey ID: $GPG_ID\\n\\nFingerprint: $GPG_FINGERPRINT\\n\\nCreated: $GPG_DATE" + fi if [ ! -f ~/.mutt/bdsmail ]; then - dialog --title $"Show your Email Address" \ - --backtitle $"Freedombone User Control Panel" \ - --msgbox $"Email Address: $MY_EMAIL_ADDRESS\\n\\nKey ID: $GPG_ID\\n\\nFingerprint: $GPG_FINGERPRINT\\n\\nCreated: $GPG_DATE" 12 100 + if [[ "$HOSTNAME" != *'.onion' ]]; then + dialog --title $"Show your Email Address" \ + --backtitle $"Freedombone User Control Panel" \ + --msgbox "$msgstr" 14 100 + else + dialog --title $"Show your Email Address" \ + --backtitle $"Freedombone User Control Panel" \ + --msgbox "$msgstr" 12 100 + fi else bdsmail_address=$(grep 'set from=' ~/.mutt/bdsmail | awk -F '=' '{print $2}') dialog --title $"Show your Email Address" \ diff --git a/src/freedombone-upgrade b/src/freedombone-upgrade index 62a59fd0..60b44204 100755 --- a/src/freedombone-upgrade +++ b/src/freedombone-upgrade @@ -102,6 +102,7 @@ if [ -d "$PROJECT_DIR" ]; then email_install_tls email_disable_chunking rm /etc/exim4/exim4.conf.template.bak* + email_update_onion_domain #defrag_filesystem # reinstall tor from backports diff --git a/src/freedombone-utils-web b/src/freedombone-utils-web index 58ea2015..5f7c8ceb 100755 --- a/src/freedombone-utils-web +++ b/src/freedombone-utils-web @@ -1006,6 +1006,20 @@ function email_disable_chunking { systemctl restart exim4 } +function email_update_onion_domain { + email_hostname='/var/lib/tor/hidden_service_email/hostname' + + cp $email_hostname /etc/skel/.email_onion_domain + + for d in /home/*/ ; do + USERNAME=$(echo "$d" | awk -F '/' '{print $3}') + if [[ $(is_valid_user "$USERNAME") == "1" ]]; then + cp $email_hostname "/home/$USERNAME/.email_onion_domain" + chown "$USERNAME":"$USERNAME" "/home/$USERNAME/.email_onion_domain" + fi + done +} + function email_install_tls { tls_config_file=/etc/exim4/conf.d/main/03_exim4-config_tlsoptions tls_auth_config_file=/etc/exim4/conf.d/auth/30_exim4-config_examples