diff --git a/addons/account/account.py b/addons/account/account.py index 9383913abbb..e11479e4dc0 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -30,6 +30,8 @@ from osv import fields, osv import decimal_precision as dp from tools.translate import _ from tools.float_utils import float_round +from openerp import SUPERUSER_ID + _logger = logging.getLogger(__name__) @@ -819,7 +821,7 @@ class account_journal(osv.osv): if not 'sequence_id' in vals or not vals['sequence_id']: # if we have the right to create a journal, we should be able to # create it's sequence. - vals.update({'sequence_id': self.create_sequence(cr, 1, vals, context)}) + vals.update({'sequence_id': self.create_sequence(cr, SUPERUSER_ID, vals, context)}) return super(account_journal, self).create(cr, uid, vals, context) def name_get(self, cr, user, ids, context=None): @@ -1858,7 +1860,7 @@ class account_tax(osv.osv): def get_precision_tax(): def change_digit_tax(cr): - res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, 1, 'Account') + res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, SUPERUSER_ID, 'Account') return (16, res+2) return change_digit_tax @@ -3349,9 +3351,9 @@ class wizard_multi_charts_accounts(osv.osv_memory): # write values of default taxes for product as super user if obj_wizard.sale_tax and taxes_ref: - ir_values_obj.set_default(cr, 1, 'product.product', "taxes_id", [taxes_ref[obj_wizard.sale_tax.id]], for_all_users=True, company_id=company_id) + ir_values_obj.set_default(cr, SUPERUSER_ID, 'product.product', "taxes_id", [taxes_ref[obj_wizard.sale_tax.id]], for_all_users=True, company_id=company_id) if obj_wizard.purchase_tax and taxes_ref: - ir_values_obj.set_default(cr, 1, 'product.product', "supplier_taxes_id", [taxes_ref[obj_wizard.purchase_tax.id]], for_all_users=True, company_id=company_id) + ir_values_obj.set_default(cr, SUPERUSER_ID, 'product.product', "supplier_taxes_id", [taxes_ref[obj_wizard.purchase_tax.id]], for_all_users=True, company_id=company_id) # Create Bank journals self._create_bank_journals_from_o2m(cr, uid, obj_wizard, company_id, acc_template_ref, context=context) diff --git a/addons/audittrail/audittrail.py b/addons/audittrail/audittrail.py index aee9fbd9305..3dff7c1cb00 100644 --- a/addons/audittrail/audittrail.py +++ b/addons/audittrail/audittrail.py @@ -25,6 +25,7 @@ from tools.translate import _ import pooler import time import tools +from openerp import SUPERUSER_ID class audittrail_rule(osv.osv): """ @@ -252,10 +253,10 @@ class audittrail_objects_proxy(object_proxy): pool = pooler.get_pool(cr.dbname) resource_pool = pool.get(model) model_pool = pool.get('ir.model') - model_ids = model_pool.search(cr, 1, [('model', '=', model)]) + model_ids = model_pool.search(cr, SUPERUSER_ID, [('model', '=', model)]) model_id = model_ids and model_ids[0] or False assert model_id, _("'%s' Model does not exist..." %(model)) - model = model_pool.browse(cr, 1, model_id) + model = model_pool.browse(cr, SUPERUSER_ID, model_id) # fields to log. currently only used by log on read() field_list = [] @@ -322,7 +323,7 @@ class audittrail_objects_proxy(object_proxy): data = {} resource_pool = pool.get(model.model) # read all the fields of the given resources in super admin mode - for resource in resource_pool.read(cr, 1, res_ids): + for resource in resource_pool.read(cr, SUPERUSER_ID, res_ids): values = {} values_text = {} resource_id = resource['id'] @@ -332,19 +333,19 @@ class audittrail_objects_proxy(object_proxy): continue values[field] = resource[field] # get the textual value of that field for this record - values_text[field] = self.get_value_text(cr, 1, pool, resource_pool, method, field, resource[field]) + values_text[field] = self.get_value_text(cr, SUPERUSER_ID, pool, resource_pool, method, field, resource[field]) field_obj = resource_pool._all_columns.get(field).column if field_obj._type in ('one2many','many2many'): # check if an audittrail rule apply in super admin mode - if self.check_rules(cr, 1, field_obj._obj, method): + if self.check_rules(cr, SUPERUSER_ID, field_obj._obj, method): # check if the model associated to a *2m field exists, in super admin mode - x2m_model_ids = pool.get('ir.model').search(cr, 1, [('model', '=', field_obj._obj)]) + x2m_model_ids = pool.get('ir.model').search(cr, SUPERUSER_ID, [('model', '=', field_obj._obj)]) x2m_model_id = x2m_model_ids and x2m_model_ids[0] or False assert x2m_model_id, _("'%s' Model does not exist..." %(field_obj._obj)) - x2m_model = pool.get('ir.model').browse(cr, 1, x2m_model_id) + x2m_model = pool.get('ir.model').browse(cr, SUPERUSER_ID, x2m_model_id) #recursive call on x2m fields that need to be checked too - data.update(self.get_data(cr, 1, pool, resource[field], x2m_model, method)) + data.update(self.get_data(cr, SUPERUSER_ID, pool, resource[field], x2m_model, method)) data[(model.id, resource_id)] = {'text':values_text, 'value': values} return data @@ -389,12 +390,12 @@ class audittrail_objects_proxy(object_proxy): field_obj = field_definition.column if field_obj._type in ('one2many','many2many'): # checking if an audittrail rule apply in super admin mode - if self.check_rules(cr, 1, field_obj._obj, method): + if self.check_rules(cr, SUPERUSER_ID, field_obj._obj, method): # checking if the model associated to a *2m field exists, in super admin mode - x2m_model_ids = pool.get('ir.model').search(cr, 1, [('model', '=', field_obj._obj)]) + x2m_model_ids = pool.get('ir.model').search(cr, SUPERUSER_ID, [('model', '=', field_obj._obj)]) x2m_model_id = x2m_model_ids and x2m_model_ids[0] or False assert x2m_model_id, _("'%s' Model does not exist..." %(field_obj._obj)) - x2m_model = pool.get('ir.model').browse(cr, 1, x2m_model_id) + x2m_model = pool.get('ir.model').browse(cr, SUPERUSER_ID, x2m_model_id) # the resource_ids that need to be checked are the sum of both old and previous values (because we # need to log also creation or deletion in those lists). x2m_old_values_ids = old_values.get(key, {'value': {}})['value'].get(field_name, []) @@ -402,7 +403,7 @@ class audittrail_objects_proxy(object_proxy): # We use list(set(...)) to remove duplicates. res_ids = list(set(x2m_old_values_ids + x2m_new_values_ids)) for res_id in res_ids: - lines.update(self.prepare_audittrail_log_line(cr, 1, pool, x2m_model, res_id, method, old_values, new_values, field_list)) + lines.update(self.prepare_audittrail_log_line(cr, SUPERUSER_ID, pool, x2m_model, res_id, method, old_values, new_values, field_list)) # if the value value is different than the old value: record the change if key not in old_values or key not in new_values or old_values[key]['value'][field_name] != new_values[key]['value'][field_name]: data = { @@ -459,9 +460,9 @@ class audittrail_objects_proxy(object_proxy): vals.update({'method': 'unlink'}) # create the audittrail log in super admin mode, only if a change has been detected if lines[(model_id, resource_id)]: - log_id = pool.get('audittrail.log').create(cr, 1, vals) + log_id = pool.get('audittrail.log').create(cr, SUPERUSER_ID, vals) model = pool.get('ir.model').browse(cr, uid, model_id) - self.create_log_line(cr, 1, log_id, model, lines[(model_id, resource_id)]) + self.create_log_line(cr, SUPERUSER_ID, log_id, model, lines[(model_id, resource_id)]) return True def check_rules(self, cr, uid, model, method): @@ -475,11 +476,11 @@ class audittrail_objects_proxy(object_proxy): """ pool = pooler.get_pool(cr.dbname) if 'audittrail.rule' in pool.models: - model_ids = pool.get('ir.model').search(cr, 1, [('model', '=', model)]) + model_ids = pool.get('ir.model').search(cr, SUPERUSER_ID, [('model', '=', model)]) model_id = model_ids and model_ids[0] or False if model_id: - rule_ids = pool.get('audittrail.rule').search(cr, 1, [('object_id', '=', model_id), ('state', '=', 'subscribed')]) - for rule in pool.get('audittrail.rule').read(cr, 1, rule_ids, ['user_id','log_read','log_write','log_create','log_unlink','log_action','log_workflow']): + rule_ids = pool.get('audittrail.rule').search(cr, SUPERUSER_ID, [('object_id', '=', model_id), ('state', '=', 'subscribed')]) + for rule in pool.get('audittrail.rule').read(cr, SUPERUSER_ID, rule_ids, ['user_id','log_read','log_write','log_create','log_unlink','log_action','log_workflow']): if len(rule['user_id']) == 0 or uid in rule['user_id']: if rule.get('log_'+method,0): return True diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py index 2959fa45db1..5d939f19db1 100644 --- a/addons/auth_oauth/controllers/main.py +++ b/addons/auth_oauth/controllers/main.py @@ -7,6 +7,7 @@ import werkzeug.utils import openerp.modules.registry import openerp.addons.web.controllers.main import openerp.addons.web.common.http as openerpweb +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -18,7 +19,7 @@ class OAuthController(openerpweb.Controller): registry = openerp.modules.registry.RegistryManager.get(dbname) with registry.cursor() as cr: providers = registry.get('auth.oauth.provider') - l = providers.read(cr, 1, providers.search(cr, 1, [('enabled','=',True)])) + l = providers.read(cr, SUPERUSER_ID, providers.search(cr, SUPERUSER_ID, [('enabled','=',True)])) return l @openerpweb.httprequest @@ -30,7 +31,7 @@ class OAuthController(openerpweb.Controller): with registry.cursor() as cr: try: u = registry.get('res.users') - credentials = u.auth_oauth(cr, 1, provider, kw) + credentials = u.auth_oauth(cr, SUPERUSER_ID, provider, kw) cr.commit() return openerp.addons.web.controllers.main.login_and_redirect(req, *credentials) except AttributeError: diff --git a/addons/auth_oauth/res_users.py b/addons/auth_oauth/res_users.py index 3dbab849942..b4f62612746 100644 --- a/addons/auth_oauth/res_users.py +++ b/addons/auth_oauth/res_users.py @@ -6,6 +6,7 @@ import simplejson import openerp from openerp.osv import osv, fields +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -63,7 +64,7 @@ class res_users(osv.Model): try: return super(res_users, self).check_credentials(cr, uid, password) except openerp.exceptions.AccessDenied: - res = self.search(cr, 1, [('id','=',uid),('oauth_access_token','=',password)]) + res = self.search(cr, SUPERUSER_ID, [('id','=',uid),('oauth_access_token','=',password)]) if not res: raise diff --git a/addons/auth_openid/controllers/main.py b/addons/auth_openid/controllers/main.py index eba711dae7a..ebcaab4bf25 100644 --- a/addons/auth_openid/controllers/main.py +++ b/addons/auth_openid/controllers/main.py @@ -23,6 +23,7 @@ import logging import os import tempfile import urllib +from openerp import SUPERUSER_ID import werkzeug.urls import werkzeug.exceptions @@ -176,7 +177,7 @@ class OpenIDController(openerpweb.Controller): with registry.cursor() as cr: Modules = registry.get('ir.module.module') - installed = Modules.search_count(cr, 1, ['&', ('name', '=', 'auth_openid'), ('state', '=', 'installed')]) == 1 + installed = Modules.search_count(cr, SUPERUSER_ID, ['&', ('name', '=', 'auth_openid'), ('state', '=', 'installed')]) == 1 if installed: Users = registry.get('res.users') @@ -196,13 +197,13 @@ class OpenIDController(openerpweb.Controller): domain += [('openid_url', '=', openid_url), ('active', '=', True)] - ids = Users.search(cr, 1, domain) + ids = Users.search(cr, SUPERUSER_ID, domain) assert len(ids) < 2 if ids: user_id = ids[0] - login = Users.browse(cr, 1, user_id).login + login = Users.browse(cr, SUPERUSER_ID, user_id).login key = randomString(utils.KEY_LENGTH, '0123456789abcdef') - Users.write(cr, 1, [user_id], {'openid_key': key}) + Users.write(cr, SUPERUSER_ID, [user_id], {'openid_key': key}) # TODO fill empty fields with the ones from sreg/ax cr.commit() diff --git a/addons/auth_reset_password/auth_reset_password.py b/addons/auth_reset_password/auth_reset_password.py index 3d1bcbbfa7b..ff208c89b9c 100644 --- a/addons/auth_reset_password/auth_reset_password.py +++ b/addons/auth_reset_password/auth_reset_password.py @@ -6,6 +6,7 @@ import urlparse from openerp.tools import config from openerp.osv import osv, fields +from openerp import SUPERUSER_ID TWENTY_FOUR_HOURS = 24 * 60 * 60 @@ -76,9 +77,9 @@ class res_users(osv.osv): MailMessage.send(cr, uid, [msg_id], context=context) def send_reset_password_request(self, cr, uid, email, context=None): - ids = self.pool.get('res.users').search(cr, 1, [('user_email', '=', email)], context=context) + ids = self.pool.get('res.users').search(cr, SUPERUSER_ID, [('user_email', '=', email)], context=context) if ids: - self._auth_reset_password_send_email(cr, 1, email, 'reset_password_email', ids[0], context=context) + self._auth_reset_password_send_email(cr, SUPERUSER_ID, email, 'reset_password_email', ids[0], context=context) return True #else: # _m, company_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'main_company') @@ -109,7 +110,7 @@ class auth_reset_password(osv.TransientModel): Users = self.pool.get('res.users') data = Users._auth_reset_password_check_token(cr, uid, values.get('token', '')) if data: - Users.write(cr, 1, data['uid'], {'password': pw}, context=context) + Users.write(cr, SUPERUSER_ID, data['uid'], {'password': pw}, context=context) else: raise osv.except_osv('Error', 'Invalid token') diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py index 0ed2151d12b..821ef44f459 100644 --- a/addons/auth_signup/controllers/main.py +++ b/addons/auth_signup/controllers/main.py @@ -5,6 +5,7 @@ import werkzeug.urls from openerp.modules.registry import RegistryManager from openerp.addons.web.controllers.main import login_and_redirect import openerp.addons.web.common.http as openerpweb +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -18,7 +19,7 @@ class OpenIDController(openerpweb.Controller): with registry.cursor() as cr: try: Users = registry.get('res.users') - credentials = Users.auth_signup(cr, 1, name, login, password) + credentials = Users.auth_signup(cr, SUPERUSER_ID, name, login, password) cr.commit() return login_and_redirect(req, *credentials) except AttributeError: diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py index 1d77a3f9473..5f6463508b6 100644 --- a/addons/auth_signup/res_users.py +++ b/addons/auth_signup/res_users.py @@ -1,5 +1,6 @@ import openerp from openerp.osv import osv +from openerp import SUPERUSER_ID class res_users(osv.Model): _inherit = 'res.users' @@ -15,9 +16,9 @@ class res_users(osv.Model): # user_template_id = self.pool.get('ir.config_parameter').get_param(cr, uid, 'auth.signup_template_user_id', 0) if user_template_id: - self.pool.get('res.users').copy(cr, 1, user_template_id, new_user, context=context) + self.pool.get('res.users').copy(cr, SUPERUSER_ID, user_template_id, new_user, context=context) else: - self.pool.get('res.users').create(cr, 1, new_user, context=context) + self.pool.get('res.users').create(cr, SUPERUSER_ID, new_user, context=context) def auth_signup(self, cr, uid, name, login, password, context=None): r = (cr.dbname, login, password) diff --git a/addons/decimal_precision/decimal_precision.py b/addons/decimal_precision/decimal_precision.py index d9f6aa7b8db..93d69eb3093 100644 --- a/addons/decimal_precision/decimal_precision.py +++ b/addons/decimal_precision/decimal_precision.py @@ -22,6 +22,7 @@ from osv import osv, fields import tools import pooler +from openerp import SUPERUSER_ID class decimal_precision(osv.osv): _name = 'decimal.precision' @@ -56,7 +57,7 @@ decimal_precision() def get_precision(application): def change_digit(cr): - res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, 1, application) + res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, SUPERUSER_ID, application) return (16, res) return change_digit diff --git a/addons/document_webdav/nodes.py b/addons/document_webdav/nodes.py index d6ceca458cd..a8fedee4fe3 100644 --- a/addons/document_webdav/nodes.py +++ b/addons/document_webdav/nodes.py @@ -25,6 +25,8 @@ from tools.safe_eval import safe_eval as eval import time import urllib import uuid +from openerp import SUPERUSER_ID + try: from tools.dict_tools import dict_filter except ImportError: @@ -233,7 +235,7 @@ class node_acl_mixin(object): if props_to_delete: # explicitly delete, as admin, any of the ids we have identified. - propobj.unlink(cr, 1, props_to_delete) + propobj.unlink(cr, SUPERUSER_ID, props_to_delete) if lock_data.get('unlock_mode', False): return lock_found and True diff --git a/addons/document_webdav/test_davclient.py b/addons/document_webdav/test_davclient.py index f1f2e58c835..0f66363c553 100755 --- a/addons/document_webdav/test_davclient.py +++ b/addons/document_webdav/test_davclient.py @@ -42,6 +42,7 @@ from tools import config from xmlrpclib import Transport, ProtocolError import StringIO import base64 +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -361,7 +362,7 @@ class DAVClient(object): to break if "base_crypt" is used. """ ruob = obj.pool.get('res.users') - res = ruob.read(cr, 1, [uid,], ['login', 'password']) + res = ruob.read(cr, SUPERUSER_ID, [uid,], ['login', 'password']) assert res, "uid %s not found" % uid self.user = res[0]['login'] self.passwd = res[0]['password'] diff --git a/addons/l10n_br/account.py b/addons/l10n_br/account.py index 6e38aaa690f..64d3c2cda79 100644 --- a/addons/l10n_br/account.py +++ b/addons/l10n_br/account.py @@ -29,6 +29,7 @@ import decimal_precision as dp from tools.misc import currency from tools.translate import _ from tools import config +from openerp import SUPERUSER_ID class account_tax_code_template(osv.osv): @@ -53,7 +54,7 @@ class account_tax_template(osv.osv): def get_precision_tax(): def change_digit_tax(cr): - res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, 1, 'Account') + res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, SUPERUSER_ID, 'Account') return (16, res+2) return change_digit_tax @@ -91,7 +92,7 @@ class account_tax(osv.osv): def get_precision_tax(): def change_digit_tax(cr): - res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, 1, 'Account') + res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, SUPERUSER_ID, 'Account') return (16, res+2) return change_digit_tax diff --git a/addons/mail/mail_alias.py b/addons/mail/mail_alias.py index 5bcce0b8927..27eb29051b9 100644 --- a/addons/mail/mail_alias.py +++ b/addons/mail/mail_alias.py @@ -92,9 +92,8 @@ class mail_alias(osv.Model): _defaults = { 'alias_defaults': '{}', 'alias_user_id': lambda self,cr,uid,context: uid, - # looks better when creating new aliases - even if the field is informative only - 'alias_domain': lambda self,cr,uid,context: self._get_alias_domain(cr,1,[1],None,None)[1] + 'alias_domain': lambda self,cr,uid,context: self._get_alias_domain(cr, SUPERUSER_ID,[1],None,None)[1] } _sql_constraints = [ diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index d9c77cb83f4..63280bbaf6c 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -88,7 +88,7 @@ class res_users(osv.Model): subject = '''%s has joined %s.''' % (user.name, company_name) body = '''Welcome to OpenERP !''' # TODO change 1 into user.id but catch errors - return self.pool.get('res.partner').message_append_note(cr, 1, [user.partner_id.id], + return self.pool.get('res.partner').message_append_note(cr, SUPERUSER_ID, [user.partner_id.id], subject=subject, body=body, type='comment', content_subtype='html', context=context) def write(self, cr, uid, ids, vals, context=None): diff --git a/addons/project/project.py b/addons/project/project.py index 904e19671cb..f16cb905807 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -26,6 +26,7 @@ from osv import fields, osv from openerp.addons.resource.faces import task as Task import time from tools.translate import _ +from openerp import SUPERUSER_ID _TASK_STATE = [('draft', 'New'),('open', 'In Progress'),('pending', 'Pending'), ('done', 'Done'), ('cancelled', 'Cancelled')] @@ -877,7 +878,7 @@ class task(base_stage, osv.osv): if context is None: context = {} # read uom as admin to avoid access rights issues, e.g. for portal/share users, # this should be safe (no context passed to avoid side-effects) - obj_tm = users_obj.browse(cr, 1, uid, context=context).company_id.project_time_mode_id + obj_tm = users_obj.browse(cr, SUPERUSER_ID, uid, context=context).company_id.project_time_mode_id tm = obj_tm and obj_tm.name or 'Hours' res = super(task, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu=submenu) diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py index 598bb085967..204ca1e92e1 100644 --- a/addons/share/wizard/share_wizard.py +++ b/addons/share/wizard/share_wizard.py @@ -23,6 +23,7 @@ import random import time from urllib import quote_plus import uuid +from openerp import SUPERUSER_ID import simplejson @@ -545,7 +546,7 @@ class share_wizard(osv.TransientModel): _logger.debug("Copying rule %s (%s) on model %s with domain: %s", rule.name, rule.id, model.model, rule.domain_force) else: # otherwise we can simply link the rule to keep it dynamic - rule_obj.write(cr, 1, [rule.id], { + rule_obj.write(cr, SUPERUSER_ID, [rule.id], { 'groups': [(4,group_id)] }) _logger.debug("Linking rule %s (%s) on model %s with domain: %s", rule.name, rule.id, model.model, rule.domain_force)