Время от времени производственный сервер OpenERP требует некоторого обслуживания: обновления нескольких модулей, возможно, перезапуска сервера.
Моя проблема в том, что я хотел бы иметь способ запретить обычным пользователям доступ к серверу. Например, вернув им "на техобслуживании" сообщение.
Какое было бы лучшее решение для этого?
Если сервер перезагружается, обычно вам понадобится какой-то резервный IP-адрес или, по крайней мере, кэширующий прокси перед сервером приложений (в данном случае OpenERP), чтобы сообщить пользователю, что он не работает. В противном случае, когда сервер отключен, вы просто получите общее сообщение об ошибке браузера, возвращаемое клиенту, например «сервер не найден» или подобное.
Короче говоря, лучший способ сделать это - разместить другой физический / виртуальный сервер перед сервером приложений, который «всегда» включен (или кластер серверов, которые перезагружаются независимо), чтобы у вас всегда было что-то, решающее проблему доменное имя или может переключиться на резервную копию, если основной не работает из-за сбоев или перезагрузки.
Это не лучший способ сделать это, но полезный прием:
Отредактируйте сервер openerp\addons\base\res\res_users.py
файл. В начале def check(self, db, uid, passwd):
метод добавить:
if uid != openerp.SUPERUSER_ID:
raise osv.except_osv(_('UNDER MAINTENANCE'), _('This service is temporarily down for maintenance.'))
При следующем перезапуске сервер перестанет принимать пользователей, кроме admin
.