浏览代码

Remove gnusocial files associated with blocked domains or users

Bob Mottram 8 年前
父节点
当前提交
f483e4d488
共有 1 个文件被更改,包括 48 次插入2 次删除
  1. 48
    2
      src/freedombone-utils-gnusocialtools

+ 48
- 2
src/freedombone-utils-gnusocialtools 查看文件

368
     echo '' >> /usr/bin/gnusocial-delete-user
368
     echo '' >> /usr/bin/gnusocial-delete-user
369
     echo 'database_name=$1' >> /usr/bin/gnusocial-delete-user
369
     echo 'database_name=$1' >> /usr/bin/gnusocial-delete-user
370
     echo 'remove_user=$2' >> /usr/bin/gnusocial-delete-user
370
     echo 'remove_user=$2' >> /usr/bin/gnusocial-delete-user
371
+    echo 'domain_name=$3' >> /usr/bin/gnusocial-delete-user
371
     echo 'MARIADB_PASSWORD=$(freedombone-pass -u root -a mariadb)' >> /usr/bin/gnusocial-delete-user
372
     echo 'MARIADB_PASSWORD=$(freedombone-pass -u root -a mariadb)' >> /usr/bin/gnusocial-delete-user
372
     echo '' >> /usr/bin/gnusocial-delete-user
373
     echo '' >> /usr/bin/gnusocial-delete-user
373
     echo 'if [ ${#remove_user} -lt 2 ]; then' >> /usr/bin/gnusocial-delete-user
374
     echo 'if [ ${#remove_user} -lt 2 ]; then' >> /usr/bin/gnusocial-delete-user
407
     echo '      database_query="delete from reply where replied_id=${id};"' >> /usr/bin/gnusocial-delete-user
408
     echo '      database_query="delete from reply where replied_id=${id};"' >> /usr/bin/gnusocial-delete-user
408
     echo '      mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-user
409
     echo '      mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-user
409
     echo '' >> /usr/bin/gnusocial-delete-user
410
     echo '' >> /usr/bin/gnusocial-delete-user
411
+    echo '      if [ $domain_name ]; then' >> /usr/bin/gnusocial-delete-user
412
+    echo '          database_query="select rendered from notice where profile_id=${id} and rendered like '"'"'%/file/%'"'"';"' >> /usr/bin/gnusocial-delete-user
413
+    echo '          declare -a stored_files=$(mysql -u root --password="$MARIADB_PASSWORD" << EOF' >> /usr/bin/gnusocial-delete-user
414
+    echo 'use $database_name;' >> /usr/bin/gnusocial-delete-user
415
+    echo '$database_query' >> /usr/bin/gnusocial-delete-user
416
+    echo 'EOF' >> /usr/bin/gnusocial-delete-user
417
+    echo ')' >> /usr/bin/gnusocial-delete-user
418
+    echo -n "          files_to_delete=\$(echo \"\$stored_files\" | " >> /usr/bin/gnusocial-delete-user
419
+    echo 'sed -n '"'"'s/.*href="\([^"]*\).*/\1/p'"'"' | awk -F '"'"'file/'"'"' '"'"'{print $2}'"'"')' >> /usr/bin/gnusocial-delete-user
420
+    echo '          filectr=0' >> /usr/bin/gnusocial-delete-user
421
+    echo '          for f in $files_to_delete' >> /usr/bin/gnusocial-delete-user
422
+    echo '          do' >> /usr/bin/gnusocial-delete-user
423
+    echo '              if [ $filectr -gt 0 ]; then' >> /usr/bin/gnusocial-delete-user
424
+    echo '                  if [ -f /var/www/${domain_name}/htdocs/file/${f} ]; then' >> /usr/bin/gnusocial-delete-user
425
+    echo '                      rm /var/www/${domain_name}/htdocs/file/${f}' >> /usr/bin/gnusocial-delete-user
426
+    echo '                  fi' >> /usr/bin/gnusocial-delete-user
427
+    echo '              fi' >> /usr/bin/gnusocial-delete-user
428
+    echo '              filectr=$((filectr + 1))' >> /usr/bin/gnusocial-delete-user
429
+    echo '          done' >> /usr/bin/gnusocial-delete-user
430
+    echo '      fi' >> /usr/bin/gnusocial-delete-user
431
+    echo '' >> /usr/bin/gnusocial-delete-user
410
     echo '      database_query="delete from notice where profile_id=${id};"' >> /usr/bin/gnusocial-delete-user
432
     echo '      database_query="delete from notice where profile_id=${id};"' >> /usr/bin/gnusocial-delete-user
411
     echo '      mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-user
433
     echo '      mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-user
412
     echo '' >> /usr/bin/gnusocial-delete-user
434
     echo '' >> /usr/bin/gnusocial-delete-user
423
 
445
 
424
 function gnusocial_block_domain_script {
446
 function gnusocial_block_domain_script {
425
     database_name=$1
447
     database_name=$1
448
+    gnusoc_domain=$2
426
 
449
 
427
     echo '#!/bin/bash' > /usr/bin/gnusocial-delete-domain
450
     echo '#!/bin/bash' > /usr/bin/gnusocial-delete-domain
428
     echo '' >> /usr/bin/gnusocial-delete-domain
451
     echo '' >> /usr/bin/gnusocial-delete-domain
429
     echo 'database_name=$1' >> /usr/bin/gnusocial-delete-domain
452
     echo 'database_name=$1' >> /usr/bin/gnusocial-delete-domain
430
     echo 'remove_domain=$2' >> /usr/bin/gnusocial-delete-domain
453
     echo 'remove_domain=$2' >> /usr/bin/gnusocial-delete-domain
454
+    echo 'domain_name=$3' >> /usr/bin/gnusocial-delete-domain
431
     echo "MARIADB_PASSWORD=\$(${PROJECT_NAME}-pass -u root -a mariadb)" >> /usr/bin/gnusocial-delete-domain
455
     echo "MARIADB_PASSWORD=\$(${PROJECT_NAME}-pass -u root -a mariadb)" >> /usr/bin/gnusocial-delete-domain
432
     echo '' >> /usr/bin/gnusocial-delete-domain
456
     echo '' >> /usr/bin/gnusocial-delete-domain
433
     echo 'if [ ${#remove_domain} -lt 2 ]; then' >> /usr/bin/gnusocial-delete-domain
457
     echo 'if [ ${#remove_domain} -lt 2 ]; then' >> /usr/bin/gnusocial-delete-domain
467
     echo '        database_query="delete from reply where replied_id=${id};"' >> /usr/bin/gnusocial-delete-domain
491
     echo '        database_query="delete from reply where replied_id=${id};"' >> /usr/bin/gnusocial-delete-domain
468
     echo '        mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-domain
492
     echo '        mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-domain
469
     echo '' >> /usr/bin/gnusocial-delete-domain
493
     echo '' >> /usr/bin/gnusocial-delete-domain
494
+    echo '        if [ $domain_name ]; then' >> /usr/bin/gnusocial-delete-domain
495
+    echo '          database_query="select rendered from notice where profile_id=${id} and rendered like '"'"'%/file/%'"'"';"' >> /usr/bin/gnusocial-delete-domain
496
+    echo '          declare -a stored_files=$(mysql -u root --password="$MARIADB_PASSWORD" << EOF' >> /usr/bin/gnusocial-delete-domain
497
+    echo 'use $database_name;' >> /usr/bin/gnusocial-delete-domain
498
+    echo '$database_query' >> /usr/bin/gnusocial-delete-domain
499
+    echo 'EOF' >> /usr/bin/gnusocial-delete-domain
500
+    echo ')' >> /usr/bin/gnusocial-delete-domain
501
+    echo -n "           files_to_delete=\$(echo \"\$stored_files\" | " >> /usr/bin/gnusocial-delete-domain
502
+    echo 'sed -n '"'"'s/.*href="\([^"]*\).*/\1/p'"'"' | awk -F '"'"'file/'"'"' '"'"'{print $2}'"'"')' >> /usr/bin/gnusocial-delete-domain
503
+    echo '            filectr=0' >> /usr/bin/gnusocial-delete-domain
504
+    echo '            for f in $files_to_delete' >> /usr/bin/gnusocial-delete-domain
505
+    echo '            do' >> /usr/bin/gnusocial-delete-domain
506
+    echo '                if [ $filectr -gt 0 ]; then' >> /usr/bin/gnusocial-delete-domain
507
+    echo '                    if [ -f /var/www/${domain_name}/htdocs/file/${f} ]; then' >> /usr/bin/gnusocial-delete-domain
508
+    echo '                        rm /var/www/${domain_name}/htdocs/file/${f}' >> /usr/bin/gnusocial-delete-domain
509
+    echo '                    fi' >> /usr/bin/gnusocial-delete-domain
510
+    echo '                fi' >> /usr/bin/gnusocial-delete-domain
511
+    echo '                filectr=$((filectr + 1))' >> /usr/bin/gnusocial-delete-domain
512
+    echo '            done' >> /usr/bin/gnusocial-delete-domain
513
+    echo '        fi' >> /usr/bin/gnusocial-delete-domain
514
+    echo '' >> /usr/bin/gnusocial-delete-domain
470
     echo '        database_query="delete from notice where profile_id=${id};"' >> /usr/bin/gnusocial-delete-domain
515
     echo '        database_query="delete from notice where profile_id=${id};"' >> /usr/bin/gnusocial-delete-domain
471
     echo '        mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-domain
516
     echo '        mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-domain
472
     echo '' >> /usr/bin/gnusocial-delete-domain
517
     echo '' >> /usr/bin/gnusocial-delete-domain
483
     echo '#!/bin/bash' > /usr/bin/${database_name}-firewall
528
     echo '#!/bin/bash' > /usr/bin/${database_name}-firewall
484
     echo '' >> /usr/bin/${database_name}-firewall
529
     echo '' >> /usr/bin/${database_name}-firewall
485
     echo "PROJECT_NAME=$PROJECT_NAME" >> /usr/bin/${database_name}-firewall
530
     echo "PROJECT_NAME=$PROJECT_NAME" >> /usr/bin/${database_name}-firewall
531
+    echo "GNUSOCIAL_DOMAIN_NAME=$gnusoc_domain" >> /usr/bin/${database_name}-firewall
486
     echo "database_name=$database_name" >> /usr/bin/${database_name}-firewall
532
     echo "database_name=$database_name" >> /usr/bin/${database_name}-firewall
487
     echo 'FIREWALL_DOMAINS=$HOME/${PROJECT_NAME}-firewall-domains.cfg' >> /usr/bin/${database_name}-firewall
533
     echo 'FIREWALL_DOMAINS=$HOME/${PROJECT_NAME}-firewall-domains.cfg' >> /usr/bin/${database_name}-firewall
488
     echo '' >> /usr/bin/${database_name}-firewall
534
     echo '' >> /usr/bin/${database_name}-firewall
489
     echo 'while read block; do' >> /usr/bin/${database_name}-firewall
535
     echo 'while read block; do' >> /usr/bin/${database_name}-firewall
490
     echo '    if [[ "$block" != *"@"* ]]; then' >> /usr/bin/${database_name}-firewall
536
     echo '    if [[ "$block" != *"@"* ]]; then' >> /usr/bin/${database_name}-firewall
491
-    echo '        /usr/bin/gnusocial-delete-domain "$database_name" "$block"' >> /usr/bin/${database_name}-firewall
537
+    echo '        /usr/bin/gnusocial-delete-domain "$database_name" "$block" "$GNUSOCIAL_DOMAIN_NAME"' >> /usr/bin/${database_name}-firewall
492
     echo '    else' >> /usr/bin/${database_name}-firewall
538
     echo '    else' >> /usr/bin/${database_name}-firewall
493
-    echo '        /usr/bin/gnusocial-delete-user "$database_name" "$block"' >> /usr/bin/${database_name}-firewall
539
+    echo '        /usr/bin/gnusocial-delete-user "$database_name" "$block" "$GNUSOCIAL_DOMAIN_NAME"' >> /usr/bin/${database_name}-firewall
494
     echo '    fi' >> /usr/bin/${database_name}-firewall
540
     echo '    fi' >> /usr/bin/${database_name}-firewall
495
     echo 'done <$FIREWALL_DOMAINS' >> /usr/bin/${database_name}-firewall
541
     echo 'done <$FIREWALL_DOMAINS' >> /usr/bin/${database_name}-firewall
496
     chmod +x /usr/bin/${database_name}-firewall
542
     chmod +x /usr/bin/${database_name}-firewall