Selaa lähdekoodia

Remove gnusocial files associated with blocked domains or users

Bob Mottram 8 vuotta sitten
vanhempi
commit
f483e4d488
1 muutettua tiedostoa jossa 48 lisäystä ja 2 poistoa
  1. 48
    2
      src/freedombone-utils-gnusocialtools

+ 48
- 2
src/freedombone-utils-gnusocialtools Näytä tiedosto

@@ -368,6 +368,7 @@ function gnusocial_block_user_script {
368 368
     echo '' >> /usr/bin/gnusocial-delete-user
369 369
     echo 'database_name=$1' >> /usr/bin/gnusocial-delete-user
370 370
     echo 'remove_user=$2' >> /usr/bin/gnusocial-delete-user
371
+    echo 'domain_name=$3' >> /usr/bin/gnusocial-delete-user
371 372
     echo 'MARIADB_PASSWORD=$(freedombone-pass -u root -a mariadb)' >> /usr/bin/gnusocial-delete-user
372 373
     echo '' >> /usr/bin/gnusocial-delete-user
373 374
     echo 'if [ ${#remove_user} -lt 2 ]; then' >> /usr/bin/gnusocial-delete-user
@@ -407,6 +408,27 @@ function gnusocial_block_user_script {
407 408
     echo '      database_query="delete from reply where replied_id=${id};"' >> /usr/bin/gnusocial-delete-user
408 409
     echo '      mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-user
409 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 432
     echo '      database_query="delete from notice where profile_id=${id};"' >> /usr/bin/gnusocial-delete-user
411 433
     echo '      mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-user
412 434
     echo '' >> /usr/bin/gnusocial-delete-user
@@ -423,11 +445,13 @@ function gnusocial_block_user_script {
423 445
 
424 446
 function gnusocial_block_domain_script {
425 447
     database_name=$1
448
+    gnusoc_domain=$2
426 449
 
427 450
     echo '#!/bin/bash' > /usr/bin/gnusocial-delete-domain
428 451
     echo '' >> /usr/bin/gnusocial-delete-domain
429 452
     echo 'database_name=$1' >> /usr/bin/gnusocial-delete-domain
430 453
     echo 'remove_domain=$2' >> /usr/bin/gnusocial-delete-domain
454
+    echo 'domain_name=$3' >> /usr/bin/gnusocial-delete-domain
431 455
     echo "MARIADB_PASSWORD=\$(${PROJECT_NAME}-pass -u root -a mariadb)" >> /usr/bin/gnusocial-delete-domain
432 456
     echo '' >> /usr/bin/gnusocial-delete-domain
433 457
     echo 'if [ ${#remove_domain} -lt 2 ]; then' >> /usr/bin/gnusocial-delete-domain
@@ -467,6 +491,27 @@ function gnusocial_block_domain_script {
467 491
     echo '        database_query="delete from reply where replied_id=${id};"' >> /usr/bin/gnusocial-delete-domain
468 492
     echo '        mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-domain
469 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 515
     echo '        database_query="delete from notice where profile_id=${id};"' >> /usr/bin/gnusocial-delete-domain
471 516
     echo '        mysql -u root --password="$MARIADB_PASSWORD" -e "$database_query" $database_name' >> /usr/bin/gnusocial-delete-domain
472 517
     echo '' >> /usr/bin/gnusocial-delete-domain
@@ -483,14 +528,15 @@ function gnusocial_block_domain_script {
483 528
     echo '#!/bin/bash' > /usr/bin/${database_name}-firewall
484 529
     echo '' >> /usr/bin/${database_name}-firewall
485 530
     echo "PROJECT_NAME=$PROJECT_NAME" >> /usr/bin/${database_name}-firewall
531
+    echo "GNUSOCIAL_DOMAIN_NAME=$gnusoc_domain" >> /usr/bin/${database_name}-firewall
486 532
     echo "database_name=$database_name" >> /usr/bin/${database_name}-firewall
487 533
     echo 'FIREWALL_DOMAINS=$HOME/${PROJECT_NAME}-firewall-domains.cfg' >> /usr/bin/${database_name}-firewall
488 534
     echo '' >> /usr/bin/${database_name}-firewall
489 535
     echo 'while read block; do' >> /usr/bin/${database_name}-firewall
490 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 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 540
     echo '    fi' >> /usr/bin/${database_name}-firewall
495 541
     echo 'done <$FIREWALL_DOMAINS' >> /usr/bin/${database_name}-firewall
496 542
     chmod +x /usr/bin/${database_name}-firewall