55 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
| # -*- coding: utf-8 -*-
 | |
| ##############################################################################
 | |
| #
 | |
| #    datenpol gmbh
 | |
| #    Copyright (C) 2013-TODAY datenpol gmbh(<http://www.datenpol.at>)
 | |
| #
 | |
| #    This program is free software: you can redistribute it and/or modify
 | |
| #    it under the terms of the GNU Affero General Public License as
 | |
| #    published by the Free Software Foundation, either version 3 of the
 | |
| #    License, or (at your option) any later version.
 | |
| #
 | |
| #    This program is distributed in the hope that it will be useful,
 | |
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| #    GNU Affero General Public License for more details.
 | |
| #
 | |
| #    You should have received a copy of the GNU Affero General Public License
 | |
| #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
| #
 | |
| ##############################################################################
 | |
| 
 | |
| from openerp import fields, models
 | |
| from openerp import api
 | |
| from openerp.tools.translate import _
 | |
| from openerp import SUPERUSER_ID
 | |
| from openerp import tools
 | |
| from lxml import etree
 | |
| 
 | |
| DISABLED_MENUS = [
 | |
| ]
 | |
| 
 | |
| class ir_ui_menu(models.Model):
 | |
|     _inherit = 'ir.ui.menu'
 | |
|     
 | |
|     @tools.ormcache(skiparg=2)
 | |
|     def get_disabled_menu_ids(self, cr, uid, context=None):
 | |
|         data_obj = self.pool.get('ir.model.data')
 | |
|          
 | |
|         menu_ids = []
 | |
|         for menu in DISABLED_MENUS:
 | |
|             module,xml_id = menu.split('.')
 | |
|             menu = data_obj.get_object(cr, uid, module, xml_id)
 | |
|             if menu:
 | |
|                 menu_ids.append(menu.id)
 | |
|         return menu_ids  
 | |
| 
 | |
|     def _filter_visible_menus(self, cr, uid, ids, context=None): 
 | |
|         if uid != 1:       
 | |
|             disabled_ids = self.get_disabled_menu_ids(cr, uid)
 | |
|              
 | |
|             ids = [id for id in ids if id not in disabled_ids]
 | |
|  
 | |
|         ids = super(ir_ui_menu, self)._filter_visible_menus(cr, uid, ids, context)
 | |
|         return ids
 |