Read only для CalDAV+CardDAV сервера Baikal
К сожалению такая полезная функция как ReadOnly для аккаунта на сервере Baikal не предусмотрена. Ну например когда делаешь общую адресную книгу для организации и не хочешь чтобы любой пользователь нечаянно нажав пару кнопок не удалил важные контакты.
Однако! Чуть покопавшись в движке, можно сделать небольшой патч, который позволит на нужное время включать режим readonly, и выключать его (на период когда нужно подправить общий справочник).
Открываем baikal/vendor/sabre/dav/lib/CardDAV/Card.php и в строке 195 меняем write на read.
У себя я оформил всё 3 файлами: 1) Патч 2) Включение режима readonly 3) Выключение режима
readonly.path:
1 2 3 4 5 6 7 8 9 10 11 |
--- /usr/local/www/apache24/sites/baikal/vendor/sabre/dav/lib/CardDAV/Card.php 2018-07-23 14:17:02.792202000 +0300 +++ /home/pavel/path_dav/Card.php 2018-07-23 14:18:20.941978000 +0300 @@ -220,7 +220,7 @@ 'protected' => true, ], [ - 'privilege' => '{DAV:}write', + 'privilege' => '{DAV:}read', 'principal' => $this->addressBookInfo['principaluri'], 'protected' => true, ], |
readonly.sh
1 2 |
#!/bin/sh patch /usr/local/www/apache24/sites/baikal/vendor/sabre/dav/lib/CardDAV/Card.php /home/pavel/path_dav/readonly.path |
write.sh
1 2 |
#!/bin/sh patch -R /usr/local/www/apache24/sites/baikal/vendor/sabre/dav/lib/CardDAV/Card.php /home/pavel/path_dav/readonly.path |