В Odoo макет вкладки прав доступа в модели res.usersбыл изменен на древовидное представление. Это означает, что вместо прежнего представления в форме права доступа теперь отображаются в иерархической древовидной структуре.
Чтобы продемонстрировать различные методы работы с правами доступа в модели res.users, я приведу примеры кода с использованием Python и Odoo.
-
Получить права доступа для пользователя:
user = self.env['res.users'].browse(user_id) access_rights = user.access_ids -
Добавить права доступа для пользователя:
new_access = self.env['ir.model.access'].search([('name', '=', 'Model Name')]) user = self.env['res.users'].browse(user_id) user.write({'access_ids': [(4, new_access.id)]}) -
Удалить права доступа для пользователя:
access_to_remove = self.env['ir.model.access'].search([('name', '=', 'Model Name')]) user = self.env['res.users'].browse(user_id) user.write({'access_ids': [(3, access_to_remove.id)]}) -
Обновление прав доступа для пользователя:
access_to_update = self.env['ir.model.access'].search([('name', '=', 'Model Name')]) user = self.env['res.users'].browse(user_id) user.write({'access_ids': [(1, access_to_update.id, {'perm_read': True, 'perm_write': True})]}) -
Создайте новое право доступа:
new_access = self.env['ir.model.access'].create({ 'name': 'New Model Access', 'model_id': model_id, 'group_id': group_id, 'perm_read': True }) -
Получить все права доступа:
access_rights = self.env['ir.model.access'].search([]) -
Права доступа к фильтру:
filtered_access_rights = self.env['ir.model.access'].search([('group_id', '=', group_id)])