Add steps to delete room and "purge" rooms with no local users
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
toolName=synapse
|
toolName=synapse
|
||||||
toolDeps="build-essential python3-dev libffi-dev python3-pip python3-setuptools postgresql libssl-dev virtualenv libjpeg-dev libxslt1-dev libpq5 libpq-dev"
|
toolDeps="build-essential python3-dev libffi-dev python3-pip python3-setuptools postgresql libssl-dev virtualenv libjpeg-dev libxslt1-dev libpq5 libpq-dev"
|
||||||
|
toolDeps+=" jq" # used as helper for api access
|
||||||
toolDepsRaspi="ilibopenjp2-7 libtiff5"
|
toolDepsRaspi="ilibopenjp2-7 libtiff5"
|
||||||
toolUser="synapse"
|
toolUser="synapse"
|
||||||
toolGroup="synapse"
|
toolGroup="synapse"
|
||||||
@@ -270,6 +271,7 @@ step_22() {
|
|||||||
endReturn -o $? "Admin token needed. Check $SEQ_CONFIG_FILE"
|
endReturn -o $? "Admin token needed. Check $SEQ_CONFIG_FILE"
|
||||||
|
|
||||||
shift
|
shift
|
||||||
|
local arg
|
||||||
local synapseIP=localhost
|
local synapseIP=localhost
|
||||||
local grepOut=" | grep -E '(\"total\":|\"name\":|\"room_id\":)'"
|
local grepOut=" | grep -E '(\"total\":|\"name\":|\"room_id\":)'"
|
||||||
|
|
||||||
@@ -333,6 +335,82 @@ step_24() {
|
|||||||
exep "curl -sS --header \"Authorization: Bearer $MATRIX_ACCESS\" \"$apiCall\" | python -m json.tool $grepOut"
|
exep "curl -sS --header \"Authorization: Bearer $MATRIX_ACCESS\" \"$apiCall\" | python -m json.tool $grepOut"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
step_26_info() { echo "Delete rooms without local users [IP]:8008"; }
|
||||||
|
step_26_alias() { ALIAS="purge"; }
|
||||||
|
step_26() {
|
||||||
|
adminTokenCheck
|
||||||
|
endReturn -o $? "Admin token needed. Check $SEQ_CONFIG_FILE"
|
||||||
|
|
||||||
|
shift
|
||||||
|
local i
|
||||||
|
local arg
|
||||||
|
local synapseIP=localhost
|
||||||
|
|
||||||
|
if [ ! -z $1 ]; then
|
||||||
|
synapseIP="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local apiCall="http://${synapseIP}:8008/_synapse/admin/v1/rooms"
|
||||||
|
local arrRoom=( $(curl -sS --header "Authorization: Bearer $MATRIX_ACCESS" "$apiCall" | jq '.rooms[] | select(.joined_local_members == 0) | .room_id') )
|
||||||
|
|
||||||
|
for i in "${!arrRoom[@]}" ; do
|
||||||
|
arrRoom[$i]="${arrRoom[$i]:1:${#arrRoom[$i]}-2}"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in "${arrRoom[@]}" ; do
|
||||||
|
step deleteroom "$i"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
step_28_info() {
|
||||||
|
echo "Delete room [OPTION] <ROOM ID> [IP]:8008"
|
||||||
|
}
|
||||||
|
step_28_alias() { ALIAS="deleteroom"; }
|
||||||
|
step_28() {
|
||||||
|
adminTokenCheck
|
||||||
|
endReturn -o $? "Admin token needed. Check $SEQ_CONFIG_FILE"
|
||||||
|
|
||||||
|
shift
|
||||||
|
local roomId=""
|
||||||
|
local synapseIP=localhost
|
||||||
|
|
||||||
|
if [ ! -z $1 ]; then
|
||||||
|
roomId="$1"
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
endReturn -o 1 "No room ID specified"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z $1 ]; then
|
||||||
|
synapseIP="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " [I] Deleting room with ID: $roomId"
|
||||||
|
|
||||||
|
local apiCall="http://${synapseIP}:8008/_synapse/admin/v1/rooms/$roomId/delete"
|
||||||
|
exep "curl -sS --header \"Authorization: Bearer $MATRIX_ACCESS\" \
|
||||||
|
-X POST \
|
||||||
|
-H \"Content-Type: application/json\" -d \"{}\" \
|
||||||
|
\"$apiCall\" | python -m json.tool"
|
||||||
|
|
||||||
|
#end
|
||||||
|
}
|
||||||
|
# As note for further improvement
|
||||||
|
# See https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/rooms.md#delete-room-api
|
||||||
|
postDataDeleteRoom()
|
||||||
|
{
|
||||||
|
cat <<EOF
|
||||||
|
{
|
||||||
|
"new_room_user_id": "@someuser:example.com",
|
||||||
|
"room_name": "Content Violation Notification",
|
||||||
|
"message": "Bad Room has been shutdown due to content violations on this server. Please review our Terms of Service.",
|
||||||
|
"block": true,
|
||||||
|
"purge": true
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
step_30_info() { echo "Drop postgres database for $toolName"; }
|
step_30_info() { echo "Drop postgres database for $toolName"; }
|
||||||
step_30_alias() { ALIAS="dropdb"; }
|
step_30_alias() { ALIAS="dropdb"; }
|
||||||
step_30() {
|
step_30() {
|
||||||
|
Reference in New Issue
Block a user