Разрешить пользователю добавлять новых пользователей только с его разрешенными компаниями и разрешениями - PullRequest
0 голосов
/ 07 июля 2019

Я хочу создать группу, которая позволит ее пользователям добавлять новые, но только с Allowed Companies и разрешениями, которые они имеют сами. В настоящее время группа Administration/Access Rights предоставляет пользователям возможность создавать новых пользователей, но она никоим образом не ограничивает разрешения, которые они могут назначать.

Я пытался изменить разрешения для группы Access Rights. Я нашел Правило записи для объекта Company в этой группе и изменил его следующим образом:

[(1, '=', 1)] 

изменено на:

['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]

Я в основном скопировал его из других правил, ограничивающих пользователей их собственными компаниями. Но затем, когда пользователь с этой группой пытается получить доступ к любому пользователю, он падает и выдает ошибку:

ValueError: Invalid field 'company_id' in leaf "<osv.ExtendedLeaf: ('company_id', '=', False) on res_company (ctx: )>"

Я также переместил обе административные группы (Access Rights и Settings) в другое приложение - Extra Rights. Это был единственный способ для меня ограничить параметры, которые могут видеть пользователи. И таким образом, если у пользователя есть доступ к пользовательскому редактированию, он не может просто что-то там изменить (например, дать себе разрешение Setting. Я действительно не понимаю, почему Odoo выбрал такое поведение.

Действия по воспроизведению проблемы: - Создать несколько компаний (ради этого примера CompanyA, CompanyB, CompanyC) - Добавить пользователя с группой Администрирование / Права доступа и назначить его некоторым компаниям (не всем, например, только компаниям A и B)

Текущее поведение: Пользователь с данной группой может изменить поле Разрешенные компании (для всех пользователей) и добавить компании, к которым у него нет доступа - в этом примере он может расширить свои Разрешенные компании с CompanyC.

Ожидаемое поведение: Пользователь с данной группой может изменять поле «Разрешенные компании» всех пользователей, но не может назначать «Разрешенные компании», которых у него нет.

1 Ответ

2 голосов
/ 09 июля 2019

Вы можете добавить домен в разрешенные компании, чтобы пользователь с этой группой мог получить доступ только к полю разрешенных компаний или изменить правило записи.Проверить ссылку найден похожий вопрос

...