Работа
November 2, 2024
CommunigatePRO: Предоставление прав доступа на папки
Предоставление прав на папки почтовых ящиков пользователей из веб-интерфейса Pronto дело простое, но не все пользователи согласны это делать самостоятельно, а у администратора не должно быть паролей - поэтому, мы предоставим права доступа через CLI.
# Узнать, как пишется имя папки на русском языке для Communigate можно командой name2mbox "Текст" # пример: # name2mbox "рофл" # 200 "&BEAEPgREBDs-"
Скрипт по настройке. Установите expect на ПК, сохраните с расширением .expect, выдайте права на исполнение и используйте.
Этот метод НЕ работает с Календарями, только с обычными папками почтового ящика.
upd: С календарём можно, но если вы вдруг переименовывали Calendar во что-то иное, права доступа так выдать не выйдет и нужно указывать дефолтное имя папки Calendar. По заявлению вендора — это захардкожено и пока не исправлено
#!/usr/bin/expect
# Скрипт на Expect, предоставляющий доступ к папкам в почтовом ящике Communigate
## Примеры применения:
#
# Выдача прав доступа к папке INBOX
# setAccountFolderRights.expect mailbox@domain.com INBOX v.marikov ls
#
# Выдача прав доступа к папке INBOX/проекты
# setAccountFolderRights.expect mailbox@domain.com &BEAEPgREBDs- v.marikov lsd
#
# Выдача прав доступа к Календарю пользователя
# setAccountFolderRights.expect mailbox@domain.com &BBoEMAQ7BDUEPQQ0BDAEQARM- v.marikov ls
#
# Права доступа к почтовым папкам, календарям и папкам с контактами, заметками и задачами пользователя (значения ключа):
# l – видеть;
# r – входить;
# s – читать;
# w – метить;
# d – удалить;
# i – добавить;
# p – публиковать;
# c – создать;
# a – управлять.
#
#
# Почтовый ящик, куда предоставляется доступ
set mailbox [lindex $argv 0];
# Имя папки, куда предоставляется доступ
set folder [lindex $argv 1];
# Имя пользователя, которому предоставляется доступ
set username [lindex $argv 2];
# Предоставляемые права доступа
set access [lindex $argv 3];
spawn telnet СЕРВЕРCGPRO 106
expect "200" {
send "USER postmaster\n"
}
expect "300" {
send "PASS ПАРОЛЬ\n"
}
expect "200" {
send "SETMAILBOXACL $mailbox MAILBOX \"$folder\" {$username=$access;}\n"
}
expect "200" {}
sleep 1
send "QUIT\n"
send_user "\n"
exit 0.