File: //volume1/@appstore/MailClient/scripts/mailclient_share_folder_acl_repair.sh
#!/bin/sh
PACKAGE="MailClient"
PACKAGE_DIR="/var/packages/${PACKAGE}"
ACL_CHECK_BIN="${PACKAGE_DIR}/target/tool/synomc_acl_check"
ACL_REPAIR_BY_SHAREDMAILBOX_RULE_BIN="${PACKAGE_DIR}/target/tool/repair_mailfolder_acl"
SYNO_ACL_TOOL="/usr/syno/bin/synoacltool"
DOMAIN_DIR="/var/spool/mail/"
MAILDIR="Maildir"
TransferMaildirToACL() {
dirlist=$(find ${DOMAIN_DIR} -mindepth 4 -maxdepth 4 -type d -name ${MAILDIR})
for dir in ${dirlist}
do
sudo ${ACL_CHECK_BIN} --log -d ${dir}
echo ${dir}
done
}
ResetAllAboveMaildir() {
#Folders example: /var/spool/mail/@local/, /var/spool/mail/@local/1024, /var/spool/mail/@local/1024/1024,
# /var/spool/mail/@local/1024/1024/Maildir, /var/spool/mail/@local/1024/1024/.SYNOMC
dirlist=$(find ${DOMAIN_DIR} -mindepth 1 -maxdepth 4 -type d)
for dir in ${dirlist}
do
sudo ${SYNO_ACL_TOOL} -del ${dir}
sudo ${SYNO_ACL_TOOL} -enforce-inherit ${dir}
echo ${dir}
done
}
RepairMaildirBySharedMailboxRule() {
sudo ${ACL_REPAIR_BY_SHAREDMAILBOX_RULE_BIN} --all
}
while [ -n "$1" ]; do
case "$1" in
"-d" | "--debug")
PrintTargetPath
exit 1
;;
"--transfer-maildir-to-acl")
TransferMaildirToACL
;;
"--reset-acl")
ResetAllAboveMaildir
RepairMaildirBySharedMailboxRule
;;
"--reset-all-above-maildir")
ResetAllAboveMaildir
;;
*)
echo "unhandled option '$1'"
exit 1
;;
esac
shift
done