summaryrefslogtreecommitdiff
path: root/odoo/addons/base
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2018-07-23 10:47:19 +0200
committerRaphael Collet <rco@odoo.com>2018-08-23 21:38:57 +0200
commit2f7c03d9ca5809b65dc6eaa778064668d34fcd2e (patch)
tree1d3452d9a127de1396563ab3b5f70de6e2bd5a7f /odoo/addons/base
parent7ba9acea188a08a75ab1cd4a7f5f56e0d0f956ef (diff)
[IMP] base: add regular user admin as uid 2
User 1 simply becomes a technical user (inactive, no password).
Diffstat (limited to 'odoo/addons/base')
-rw-r--r--odoo/addons/base/data/base_data.sql12
-rw-r--r--odoo/addons/base/data/res_partner_data.xml7
-rw-r--r--odoo/addons/base/data/res_users_data.xml13
-rw-r--r--odoo/addons/base/data/res_users_demo.xml5
-rw-r--r--odoo/addons/base/models/res_partner.py11
-rw-r--r--odoo/addons/base/security/base_groups.xml7
-rw-r--r--odoo/addons/base/tests/test_xmlrpc.py10
7 files changed, 44 insertions, 21 deletions
diff --git a/odoo/addons/base/data/base_data.sql b/odoo/addons/base/data/base_data.sql
index 760205e3a89..58bdd7d3062 100644
--- a/odoo/addons/base/data/base_data.sql
+++ b/odoo/addons/base/data/base_data.sql
@@ -126,20 +126,20 @@ CREATE TABLE res_partner (
---------------------------------
insert into res_currency (id, name, symbol) VALUES (1, 'EUR', '€');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('EUR', 'base', 'res.currency', true, 1);
-select setval('res_currency_id_seq', 2);
+select setval('res_currency_id_seq', 1);
insert into res_company (id, name, partner_id, currency_id, create_date) VALUES (1, 'My Company', 1, 1, now() at time zone 'UTC');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('main_company', 'base', 'res.company', true, 1);
-select setval('res_company_id_seq', 2);
+select setval('res_company_id_seq', 1);
insert into res_partner (id, name, company_id, create_date) VALUES (1, 'My Company', 1, now() at time zone 'UTC');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('main_partner', 'base', 'res.partner', true, 1);
-select setval('res_partner_id_seq', 2);
+select setval('res_partner_id_seq', 1);
-insert into res_users (id, login, password, active, partner_id, company_id, create_date) VALUES (1, 'admin', 'admin', true, 1, 1, now() at time zone 'UTC');
+insert into res_users (id, login, password, active, partner_id, company_id, create_date) VALUES (1, '__system__', NULL, false, 1, 1, now() at time zone 'UTC');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('user_root', 'base', 'res.users', true, 1);
-select setval('res_users_id_seq', 2);
+select setval('res_users_id_seq', 1);
insert into res_groups (id, name) VALUES (1, 'Employee');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('group_user', 'base', 'res.groups', true, 1);
-select setval('res_groups_id_seq', 2);
+select setval('res_groups_id_seq', 1);
diff --git a/odoo/addons/base/data/res_partner_data.xml b/odoo/addons/base/data/res_partner_data.xml
index f83a9dceab4..41872a10fa0 100644
--- a/odoo/addons/base/data/res_partner_data.xml
+++ b/odoo/addons/base/data/res_partner_data.xml
@@ -16,6 +16,13 @@
</record>
<record model="res.partner" id="base.partner_root">
+ <field name="name">System</field>
+ <field name="company_id" ref="main_company"/>
+ <field name="customer" eval="False"/>
+ <field name="active" eval="False"/>
+ </record>
+
+ <record model="res.partner" id="base.partner_admin">
<field name="name">Administrator</field>
<field name="company_id" ref="main_company"/>
<field name="customer" eval="False"/>
diff --git a/odoo/addons/base/data/res_users_data.xml b/odoo/addons/base/data/res_users_data.xml
index 70482bf1893..b28572009ce 100644
--- a/odoo/addons/base/data/res_users_data.xml
+++ b/odoo/addons/base/data/res_users_data.xml
@@ -1,11 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
+ <!-- user 1 is the technical admin user -->
<record model="res.users" id="base.user_root">
<field name="partner_id" ref="base.partner_root"/>
<field name="company_id" ref="main_company"/>
<field name="company_ids" eval="[(4, ref('main_company'))]"/>
<field name="signature"><![CDATA[<span>-- <br/>
+System</span>]]></field>
+ </record>
+
+ <!-- user 2 is the human admin user -->
+ <record id="user_admin" model="res.users">
+ <field name="login">admin</field>
+ <field name="password">admin</field>
+ <field name="partner_id" ref="base.partner_admin"/>
+ <field name="company_id" ref="main_company"/>
+ <field name="company_ids" eval="[(4, ref('main_company'))]"/>
+ <field name="groups_id" eval="[(6,0,[])]"/>
+ <field name="signature"><![CDATA[<span>-- <br/>
Administrator</span>]]></field>
</record>
diff --git a/odoo/addons/base/data/res_users_demo.xml b/odoo/addons/base/data/res_users_demo.xml
index faee5b8f40b..38d6323ee28 100644
--- a/odoo/addons/base/data/res_users_demo.xml
+++ b/odoo/addons/base/data/res_users_demo.xml
@@ -40,6 +40,11 @@
</record>
<record model="res.partner" id="base.partner_root">
+ <field name="email">root@yourcompany.example.com</field>
+ <field name="tz">Europe/Brussels</field>
+ </record>
+
+ <record model="res.partner" id="base.partner_admin">
<field name="name">Mitchell Stephens</field>
<field name="company_name">YourCompany</field>
<field name="street">215 Vine St</field>
diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py
index a423af7835d..932c6d49167 100644
--- a/odoo/addons/base/models/res_partner.py
+++ b/odoo/addons/base/models/res_partner.py
@@ -208,7 +208,7 @@ class Partner(models.Model):
compute='_compute_company_type', inverse='_write_company_type')
company_id = fields.Many2one('res.company', 'Company', index=True, default=_default_company)
color = fields.Integer(string='Color Index', default=0)
- user_ids = fields.One2many('res.users', 'partner_id', string='Users', auto_join=True)
+ user_ids = fields.One2many('res.users', 'partner_id', string='Users', auto_join=True, context={'active_test': False})
partner_share = fields.Boolean(
'Share Partner', compute='_compute_partner_share', store=True,
help="Either customer (not a user), either shared user. Indicated the current partner is a customer without "
@@ -240,13 +240,6 @@ class Partner(models.Model):
('check_name', "CHECK( (type='contact' AND name IS NOT NULL) or (type!='contact') )", 'Contacts require a name.'),
]
- @api.multi
- def toggle_active(self):
- for partner in self:
- if partner.active and partner.user_ids:
- raise ValidationError(_('You cannot archive a contact linked to an internal user.'))
- super(Partner, self).toggle_active()
-
@api.depends('is_company', 'name', 'parent_id.name', 'type', 'company_name')
def _compute_display_name(self):
diff = dict(show_address=None, show_address_only=None, show_email=None)
@@ -506,7 +499,7 @@ class Partner(models.Model):
def write(self, vals):
if vals.get('active') is False:
for partner in self:
- if partner.active and partner.user_ids:
+ if partner.active and any(partner.user_ids.mapped('active')):
raise ValidationError(_('You cannot archive a contact linked to an internal user.'))
# res.partner must only allow to set the company_id of a partner if it
# is the same as the company of all users that inherit from this partner
diff --git a/odoo/addons/base/security/base_groups.xml b/odoo/addons/base/security/base_groups.xml
index a7e32bb1065..62889e5cbc9 100644
--- a/odoo/addons/base/security/base_groups.xml
+++ b/odoo/addons/base/security/base_groups.xml
@@ -14,7 +14,7 @@
<record model="res.groups" id="group_system">
<field name="name">Settings</field>
<field name="implied_ids" eval="[(4, ref('group_erp_manager'))]"/>
- <field name="users" eval="[(4, ref('base.user_root'))]"/>
+ <field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record model="res.groups" id="group_user">
@@ -38,11 +38,12 @@
</record>
<record model="res.groups" id="group_user">
<field name="implied_ids" eval="[(4, ref('group_no_one'))]"/>
- <field name="users" eval="[(4, ref('base.user_root'))]"/>
+ <field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record model="res.groups" id="group_partner_manager">
<field name="name">Contact Creation</field>
+ <field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="default_user" model="res.users">
@@ -89,4 +90,4 @@
</record>
</data>
-</odoo> \ No newline at end of file
+</odoo>
diff --git a/odoo/addons/base/tests/test_xmlrpc.py b/odoo/addons/base/tests/test_xmlrpc.py
index 98ad2a473c1..09ec01adfbb 100644
--- a/odoo/addons/base/tests/test_xmlrpc.py
+++ b/odoo/addons/base/tests/test_xmlrpc.py
@@ -7,17 +7,21 @@ from odoo.tests import common
@common.tagged('post_install', '-at_install')
class TestXMLRPC(common.HttpCase):
+ def setUp(self):
+ super(TestXMLRPC, self).setUp()
+ self.admin_uid = self.env.ref('base.user_admin').id
+
def test_01_xmlrpc_login(self):
""" Try to login on the common service. """
db_name = common.get_db_name()
uid = self.xmlrpc_common.login(db_name, 'admin', 'admin')
- self.assertEqual(uid, 1)
+ self.assertEqual(uid, self.admin_uid)
def test_xmlrpc_ir_model_search(self):
""" Try a search on the object service. """
o = self.xmlrpc_object
db_name = common.get_db_name()
- ids = o.execute(db_name, 1, 'admin', 'ir.model', 'search', [])
+ ids = o.execute(db_name, self.admin_uid, 'admin', 'ir.model', 'search', [])
self.assertIsInstance(ids, list)
- ids = o.execute(db_name, 1, 'admin', 'ir.model', 'search', [], {})
+ ids = o.execute(db_name, self.admin_uid, 'admin', 'ir.model', 'search', [], {})
self.assertIsInstance(ids, list)