Merge
This commit is contained in:
+22
-22
@@ -118,7 +118,7 @@ CREATE TABLE ir_ui_menu (
|
||||
select setval('ir_ui_menu_id_seq', 2);
|
||||
|
||||
---------------------------------
|
||||
-- Res users
|
||||
-- Res user
|
||||
---------------------------------
|
||||
|
||||
-- level:
|
||||
@@ -126,7 +126,7 @@ select setval('ir_ui_menu_id_seq', 2);
|
||||
-- 1 RESTRICT TO GROUP
|
||||
-- 2 PUBLIC
|
||||
|
||||
CREATE TABLE res_users (
|
||||
CREATE TABLE res_user (
|
||||
id serial NOT NULL,
|
||||
name varchar(64) not null,
|
||||
active boolean default True,
|
||||
@@ -136,32 +136,32 @@ CREATE TABLE res_users (
|
||||
action_id int,
|
||||
primary key(id)
|
||||
);
|
||||
alter table res_users add constraint res_users_login_uniq unique (login);
|
||||
alter table res_user add constraint res_user_login_uniq unique (login);
|
||||
|
||||
insert into res_users (id,login,password,name,action_id,active) values (1,'root',NULL,'Root',NULL,False);
|
||||
select setval('res_users_id_seq', 2);
|
||||
insert into res_user (id,login,password,name,action_id,active) values (1,'root',NULL,'Root',NULL,False);
|
||||
select setval('res_user_id_seq', 2);
|
||||
|
||||
CREATE TABLE res_groups (
|
||||
CREATE TABLE res_group (
|
||||
id serial NOT NULL,
|
||||
name varchar(32) NOT NULL,
|
||||
primary key(id)
|
||||
);
|
||||
|
||||
create table res_roles (
|
||||
create table res_role (
|
||||
id serial NOT NULL,
|
||||
parent_id int references res_roles on delete set null,
|
||||
parent_id int references res_role on delete set null,
|
||||
name varchar(32) NOT NULL,
|
||||
primary key(id)
|
||||
);
|
||||
|
||||
CREATE TABLE res_roles_users_rel (
|
||||
uid integer NOT NULL references res_users on delete cascade,
|
||||
rid integer NOT NULL references res_roles on delete cascade
|
||||
CREATE TABLE res_role_user_rel (
|
||||
uid integer NOT NULL references res_user on delete cascade,
|
||||
rid integer NOT NULL references res_role on delete cascade
|
||||
);
|
||||
|
||||
CREATE TABLE res_groups_users_rel (
|
||||
uid integer NOT NULL references res_users on delete cascade,
|
||||
gid integer NOT NULL references res_groups on delete cascade
|
||||
CREATE TABLE res_group_user_rel (
|
||||
uid integer NOT NULL references res_user on delete cascade,
|
||||
gid integer NOT NULL references res_group on delete cascade
|
||||
);
|
||||
|
||||
---------------------------------
|
||||
@@ -204,7 +204,7 @@ create table wkf_transition
|
||||
trigger_expr_id varchar(128) default NULL,
|
||||
|
||||
signal varchar(64) default null,
|
||||
role_id int references res_roles on delete set null,
|
||||
role_id int references res_role on delete set null,
|
||||
|
||||
primary key(id)
|
||||
);
|
||||
@@ -241,7 +241,7 @@ create table wkf_logs
|
||||
id serial,
|
||||
res_type varchar(128) not null,
|
||||
res_id int not null,
|
||||
uid int references res_users on delete set null,
|
||||
uid int references res_user on delete set null,
|
||||
act_id int references wkf_activity on delete set null,
|
||||
time time not null,
|
||||
info varchar(128) default NULL,
|
||||
@@ -254,10 +254,10 @@ create table wkf_logs
|
||||
|
||||
CREATE TABLE ir_module_category (
|
||||
id serial NOT NULL,
|
||||
create_uid integer references res_users on delete set null,
|
||||
create_uid integer references res_user on delete set null,
|
||||
create_date timestamp without time zone,
|
||||
write_date timestamp without time zone,
|
||||
write_uid integer references res_users on delete set null,
|
||||
write_uid integer references res_user on delete set null,
|
||||
parent_id integer REFERENCES ir_module_category ON DELETE SET NULL,
|
||||
name character varying(128) NOT NULL,
|
||||
primary key(id)
|
||||
@@ -266,10 +266,10 @@ CREATE TABLE ir_module_category (
|
||||
|
||||
CREATE TABLE ir_module_module (
|
||||
id serial NOT NULL,
|
||||
create_uid integer references res_users on delete set null,
|
||||
create_uid integer references res_user on delete set null,
|
||||
create_date timestamp without time zone,
|
||||
write_date timestamp without time zone,
|
||||
write_uid integer references res_users on delete set null,
|
||||
write_uid integer references res_user on delete set null,
|
||||
website character varying(256),
|
||||
name character varying(128) NOT NULL,
|
||||
author character varying(128),
|
||||
@@ -286,10 +286,10 @@ ALTER TABLE ir_module_module add constraint name_uniq unique (name);
|
||||
|
||||
CREATE TABLE ir_module_module_dependency (
|
||||
id serial NOT NULL,
|
||||
create_uid integer references res_users on delete set null,
|
||||
create_uid integer references res_user on delete set null,
|
||||
create_date timestamp without time zone,
|
||||
write_date timestamp without time zone,
|
||||
write_uid integer references res_users on delete set null,
|
||||
write_uid integer references res_user on delete set null,
|
||||
name character varying(128),
|
||||
version_pattern character varying(128) default NULL,
|
||||
module_id integer REFERENCES ir_module_module ON DELETE cascade,
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ class Cron(OSV, Agent):
|
||||
_description = __doc__
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=60, required=True),
|
||||
'user_id': fields.many2one('res.users', 'User', required=True),
|
||||
'user_id': fields.many2one('res.user', 'User', required=True),
|
||||
'active': fields.boolean('Active'),
|
||||
'interval_number': fields.integer('Interval Number'),
|
||||
'interval_type': fields.selection( [
|
||||
|
||||
+3
-3
@@ -37,7 +37,7 @@ class ModelFields(OSV):
|
||||
'ttype': fields.char('Field Type', size=64),
|
||||
'relate': fields.boolean('Click and Relate'),
|
||||
|
||||
'groups': fields.many2many('res.groups', 'ir_model_fields_group_rel',
|
||||
'groups': fields.many2many('res.group', 'ir_model_fields_group_rel',
|
||||
'field_id', 'group_id', 'Groups'),
|
||||
'group_name': fields.char('Group Name', size=128),
|
||||
'view_load': fields.boolean('View Auto-Load'),
|
||||
@@ -60,7 +60,7 @@ class ModelAccess(OSV):
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'model_id': fields.many2one('ir.model', 'Model', required=True),
|
||||
'group_id': fields.many2one('res.groups', 'Group'),
|
||||
'group_id': fields.many2one('res.group', 'Group'),
|
||||
'perm_read': fields.boolean('Read Access'),
|
||||
'perm_write': fields.boolean('Write Access'),
|
||||
'perm_create': fields.boolean('Create Access'),
|
||||
@@ -77,7 +77,7 @@ class ModelAccess(OSV):
|
||||
'FROM ir_model_access a '
|
||||
'JOIN ir_model m '
|
||||
'ON (a.model_id=m.id) '
|
||||
'JOIN res_groups_users_rel gu '
|
||||
'JOIN res_group_user_rel gu '
|
||||
'ON (gu.gid = a.group_id) '
|
||||
'WHERE m.model = %s AND gu.uid = %s', (model_name, user,))
|
||||
row = cursor.fetchall()
|
||||
|
||||
@@ -118,7 +118,7 @@ class Property(OSV):
|
||||
default_val = self.browse(cursor, user, default_id[0],
|
||||
context=context).value
|
||||
|
||||
# company_id = obj.pool.get('res.users').company_get(cursor, user, user)
|
||||
# company_id = obj.pool.get('res.user').company_get(cursor, user, user)
|
||||
res = False
|
||||
if (val != default_val):
|
||||
res = self.create(cursor, user, {
|
||||
|
||||
+7
-7
@@ -17,9 +17,9 @@ class RuleGroup(OSV):
|
||||
"or it needs to be put on a group or user"),
|
||||
'rules': fields.one2many('ir.rule', 'rule_group', 'Tests',
|
||||
help="The rule is satisfied if at least one test is True"),
|
||||
'groups': fields.many2many('res.groups', 'group_rule_group_rel',
|
||||
'groups': fields.many2many('res.group', 'group_rule_group_rel',
|
||||
'rule_group_id', 'group_id', 'Groups'),
|
||||
'users': fields.many2many('res.users', 'user_rule_group_rel',
|
||||
'users': fields.many2many('res.user', 'user_rule_group_rel',
|
||||
'rule_group_id', 'user_id', 'Users'),
|
||||
}
|
||||
_order = 'model_id, global DESC'
|
||||
@@ -89,7 +89,7 @@ class Rule(OSV):
|
||||
return res
|
||||
|
||||
res = [("False", "False"), ("True", "True"), ("user.id", "User")]
|
||||
res += get('res.users', level=1,
|
||||
res += get('res.user', level=1,
|
||||
recur=['many2one'], root_tech='user', root='User')
|
||||
return res
|
||||
|
||||
@@ -125,7 +125,7 @@ class Rule(OSV):
|
||||
"WHERE user_id = %d " \
|
||||
"UNION SELECT rule_group_id " \
|
||||
"FROM group_rule_group_rel g_rel " \
|
||||
"JOIN res_groups_users_rel u_rel " \
|
||||
"JOIN res_group_user_rel u_rel " \
|
||||
"ON (g_rel.group_id = u_rel.gid) " \
|
||||
"WHERE u_rel.uid = %d) "
|
||||
"OR g.global)", (model_name, user, user))
|
||||
@@ -140,12 +140,12 @@ class Rule(OSV):
|
||||
if rule.operator in ('in', 'child_of'):
|
||||
dom = eval("[('%s', '%s', [%s])]" % \
|
||||
(rule.field_id.name, rule.operator, rule.operand),
|
||||
{'user': self.pool.get('res.users').browse(cursor, 1,
|
||||
{'user': self.pool.get('res.user').browse(cursor, 1,
|
||||
user), 'time': time})
|
||||
else:
|
||||
dom = eval("[('%s', '%s', %s)]" % \
|
||||
(rule.field_id.name, rule.operator, rule.operand),
|
||||
{'user': self.pool.get('res.users').browse(cursor, 1,
|
||||
{'user': self.pool.get('res.user').browse(cursor, 1,
|
||||
user), 'time': time})
|
||||
|
||||
if rule.rule_group['global']:
|
||||
@@ -195,7 +195,7 @@ class Rule(OSV):
|
||||
AND (g.id IN (SELECT rule_group_id FROM user_rule_group_rel
|
||||
WHERE user_id = %d
|
||||
UNION SELECT rule_group_id FROM group_rule_group_rel g_rel
|
||||
JOIN res_groups_users_rel u_rel
|
||||
JOIN res_group_user_rel u_rel
|
||||
ON g_rel.group_id = u_rel.gid
|
||||
WHERE u_rel.user = %d))""", (model_name, user, user))
|
||||
if not cursor.fetchall():
|
||||
|
||||
@@ -143,7 +143,7 @@ class UIMenu(OSV):
|
||||
|
||||
def search(self, cursor, user, args, offset=0, limit=2000, order=None,
|
||||
context=None, count=False):
|
||||
res_user_obj = self.pool.get('res.users')
|
||||
res_user_obj = self.pool.get('res.user')
|
||||
if context is None:
|
||||
context = {}
|
||||
ids = super(UIMenu, self).search(cursor, user, args, offset, limit,
|
||||
@@ -235,7 +235,7 @@ class UIMenu(OSV):
|
||||
'sequence': fields.integer('Sequence'),
|
||||
'child_id' : fields.one2many('ir.ui.menu', 'parent_id','Child ids'),
|
||||
'parent_id': fields.many2one('ir.ui.menu', 'Parent Menu', select=True),
|
||||
'groups_id': Many2ManyUniq('res.groups', 'ir_ui_menu_group_rel',
|
||||
'groups_id': Many2ManyUniq('res.group', 'ir_ui_menu_group_rel',
|
||||
'menu_id', 'gid', 'Groups'),
|
||||
'complete_name': fields.function(_get_full_name, method=True,
|
||||
string='Complete Name', type='char', size=128),
|
||||
|
||||
@@ -53,7 +53,7 @@ class ViewShortcut(OSV):
|
||||
'name': fields.char('Shortcut Name', size=64, required=True),
|
||||
'res_id': fields.integer('Resource Ref.', required=True),
|
||||
'sequence': fields.integer('Sequence'),
|
||||
'user_id': fields.many2one('res.users', 'User Ref.', required=True,
|
||||
'user_id': fields.many2one('res.user', 'User Ref.', required=True,
|
||||
ondelete='cascade'),
|
||||
'resource': fields.char('Resource Name', size=64, required=True)
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class Values(OSV):
|
||||
fnct_inv=_value_pickle, method=True, type='text',
|
||||
string='Meta Datas'),
|
||||
'res_id': fields.integer('Resource ID'),
|
||||
'user_id': fields.many2one('res.users', 'User', ondelete='cascade'),
|
||||
'user_id': fields.many2one('res.user', 'User', ondelete='cascade'),
|
||||
|
||||
|
||||
#TODO add in company module
|
||||
@@ -111,7 +111,7 @@ class Values(OSV):
|
||||
'user_id': preserve_user and user,
|
||||
}
|
||||
# if company:
|
||||
# cid = self.pool.get('res.users').browse(cursor, user, user,
|
||||
# cid = self.pool.get('res.user').browse(cursor, user, user,
|
||||
# context={}).company_id.id
|
||||
# vals['company_id'] = cid
|
||||
if res_id:
|
||||
@@ -177,7 +177,7 @@ class Values(OSV):
|
||||
|
||||
if not result:
|
||||
return []
|
||||
# cid = self.pool.get('res.users').browse(cursor, user, user,
|
||||
# cid = self.pool.get('res.user').browse(cursor, user, user,
|
||||
# context={}).company_id.id
|
||||
cursor.execute('SELECT id, name, value, object, meta, key ' \
|
||||
'FROM ir_values ' \
|
||||
|
||||
+4
-4
@@ -316,10 +316,10 @@ class ORM(object):
|
||||
cursor.commit()
|
||||
if self._log_access:
|
||||
logs = {
|
||||
'create_uid': 'INTEGER REFERENCES res_users ' \
|
||||
'create_uid': 'INTEGER REFERENCES res_user ' \
|
||||
'ON DELETE SET NULL',
|
||||
'create_date': 'TIMESTAMP',
|
||||
'write_uid': 'INTEGER REFERENCES res_users ' \
|
||||
'write_uid': 'INTEGER REFERENCES res_user ' \
|
||||
'ON DELETE SET NULL',
|
||||
'write_date': 'TIMESTAMP'
|
||||
}
|
||||
@@ -632,11 +632,11 @@ class ORM(object):
|
||||
# FIXME: does not work at all
|
||||
# if self._log_access:
|
||||
# self._columns.update({
|
||||
# 'create_uid': fields.many2one('res.users', 'Creation user',
|
||||
# 'create_uid': fields.many2one('res.user', 'Creation user',
|
||||
# required=True, readonly=True),
|
||||
# 'create_date': fields.datetime('Creation date', required=True,
|
||||
# readonly=True),
|
||||
# 'write_uid': fields.many2one('res.users',
|
||||
# 'write_uid': fields.many2one('res.user',
|
||||
# 'Last modification by', readonly=True),
|
||||
# 'write_date': fields.datetime('Last modification date',
|
||||
# readonly=True),
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
from users import *
|
||||
from user import *
|
||||
from lang import *
|
||||
from request import *
|
||||
|
||||
@@ -31,11 +31,11 @@ class Request(OSV):
|
||||
'waiting': [('readonly', True)],
|
||||
'closed': [('readonly', True)],
|
||||
}, required=True),
|
||||
'act_from': fields.Many2One('res.users', 'From', required=True,
|
||||
'act_from': fields.Many2One('res.user', 'From', required=True,
|
||||
readonly=True, states={
|
||||
'closed': [('readonly', True)],
|
||||
}),
|
||||
'act_to': fields.Many2One('res.users', 'To', required=True,
|
||||
'act_to': fields.Many2One('res.user', 'To', required=True,
|
||||
states={
|
||||
'waiting': [('readonly', True)],
|
||||
'closed': [('readonly', True)],
|
||||
@@ -155,9 +155,9 @@ class RequestHistory(OSV):
|
||||
}, required=True),
|
||||
'req_id': fields.Many2One('res.request', 'Request', required=True,
|
||||
ondelete='cascade', select=True),
|
||||
'act_from': fields.Many2One('res.users', 'From', required=True,
|
||||
'act_from': fields.Many2One('res.user', 'From', required=True,
|
||||
readonly=True),
|
||||
'act_to': fields.Many2One('res.users', 'To', required=True, states={
|
||||
'act_to': fields.Many2One('res.user', 'To', required=True, states={
|
||||
'waiting': [('readonly', True)],
|
||||
}),
|
||||
'body': fields.Text('Body', states={
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
"Users"
|
||||
"User"
|
||||
from trytond.osv import fields, OSV, ExceptOSV
|
||||
#from trytond.tools import Cache
|
||||
|
||||
|
||||
class Groups(OSV):
|
||||
"Groups"
|
||||
_name = "res.groups"
|
||||
class Group(OSV):
|
||||
"Group"
|
||||
_name = "res.group"
|
||||
_description = __doc__
|
||||
_columns = {
|
||||
'name': fields.Char('Group Name', size=64, required=True),
|
||||
@@ -26,28 +26,28 @@ class Groups(OSV):
|
||||
if vals['name'].startswith('-'):
|
||||
raise ExceptOSV('Error',
|
||||
'The name of the group can not start with "-"')
|
||||
res = super(Groups, self).write(cursor, user, ids, vals,
|
||||
res = super(Group, self).write(cursor, user, ids, vals,
|
||||
context=context)
|
||||
# Restart the cache on the company_get method
|
||||
self.pool.get('ir.rule').domain_get()
|
||||
return res
|
||||
|
||||
Groups()
|
||||
Group()
|
||||
|
||||
|
||||
class Roles(OSV):
|
||||
"Roles"
|
||||
_name = "res.roles"
|
||||
class Role(OSV):
|
||||
"Role"
|
||||
_name = "res.role"
|
||||
_description = __doc__
|
||||
_columns = {
|
||||
'name': fields.Char('Role Name', size=64, required=True),
|
||||
'parent_id': fields.Many2One('res.roles', 'Parent', select=True),
|
||||
'child_id': fields.One2Many('res.roles', 'parent_id', 'Childs')
|
||||
'parent_id': fields.Many2One('res.role', 'Parent', select=True),
|
||||
'child_id': fields.One2Many('res.role', 'parent_id', 'Childs')
|
||||
}
|
||||
|
||||
def check_recursion(self, cursor, user, ids, parent=None):
|
||||
"Check for recursion"
|
||||
return super(Roles, self).check_recursion(cursor, user, ids,
|
||||
return super(Role, self).check_recursion(cursor, user, ids,
|
||||
parent=parent)
|
||||
|
||||
_constraints = [
|
||||
@@ -55,12 +55,12 @@ class Roles(OSV):
|
||||
['parent_id'])
|
||||
]
|
||||
|
||||
Roles()
|
||||
Role()
|
||||
|
||||
|
||||
class Users(OSV):
|
||||
"Users"
|
||||
_name = "res.users"
|
||||
class User(OSV):
|
||||
"User"
|
||||
_name = "res.user"
|
||||
_log_access = False
|
||||
_description = __doc__
|
||||
_columns = {
|
||||
@@ -72,9 +72,9 @@ class Users(OSV):
|
||||
'active': fields.Boolean('Active'),
|
||||
'action_id': fields.Many2One('ir.actions.actions', 'Home Action'),
|
||||
'menu_id': fields.Many2One('ir.actions.actions', 'Menu Action'),
|
||||
'groups_id': fields.Many2Many('res.groups', 'res_groups_users_rel',
|
||||
'uid', 'gid', 'Groups'),
|
||||
'roles_id': fields.Many2Many('res.roles', 'res_roles_users_rel',
|
||||
'groups_id': fields.Many2Many('res.group', 'res_group_user_rel',
|
||||
'uid', 'gid', 'Groups'),
|
||||
'roles_id': fields.Many2Many('res.role', 'res_role_user_rel',
|
||||
'uid', 'rid', 'Roles'),
|
||||
#'company_id': fields.Many2One('res.company', 'Company'),
|
||||
'rule_groups': fields.Many2Many('ir.rule.group', 'user_rule_group_rel',
|
||||
@@ -90,15 +90,15 @@ class Users(OSV):
|
||||
'active' : lambda *a: 1,
|
||||
}
|
||||
# def company_get(self, cursor, user, uid2):
|
||||
# company_id = self.pool.get('res.users').browse(cursor, user,
|
||||
# company_id = self.pool.get('res.user').browse(cursor, user,
|
||||
# user).company_id.id
|
||||
# return company_id
|
||||
# company_get = Cache()(company_get)
|
||||
|
||||
def write(self, cursor, user, ids, vals, context=None):
|
||||
res = super(Users, self).write(cursor, user, ids, vals, context=context)
|
||||
res = super(User, self).write(cursor, user, ids, vals, context=context)
|
||||
# Restart the cache for company_get and domain_get method
|
||||
# self.company_get()
|
||||
# Restart the cache on the company_get method
|
||||
self.pool.get('ir.rule').domain_get()
|
||||
return res
|
||||
|
||||
@@ -109,7 +109,7 @@ class Users(OSV):
|
||||
'as it is used internally for resources\n' \
|
||||
'created by Tiny ERP ' \
|
||||
'(updates, module installation, ...)')
|
||||
return super(Users, self).unlink(cursor, user, ids, context=context)
|
||||
return super(User, self).unlink(cursor, user, ids, context=context)
|
||||
|
||||
def name_search(self, cursor, user, name='', args=None, operator='ilike',
|
||||
context=None, limit=80):
|
||||
@@ -129,15 +129,15 @@ class Users(OSV):
|
||||
default = {}
|
||||
login = self.read(cursor, user, obj_id, ['login'])['login']
|
||||
default.update({'login': login+' (copy)'})
|
||||
return super(Users, self).copy(cursor, user, obj_id, default,
|
||||
return super(User, self).copy(cursor, user, obj_id, default,
|
||||
context=context)
|
||||
Users()
|
||||
User()
|
||||
|
||||
|
||||
class Groups2(Groups):
|
||||
class Group2(Group):
|
||||
_columns = {
|
||||
'users': fields.many2many('res.users', 'res_groups_users_rel', 'gid',
|
||||
'users': fields.many2many('res.user', 'res_group_user_rel', 'gid',
|
||||
'uid', 'Users'),
|
||||
}
|
||||
|
||||
Groups2()
|
||||
Group2()
|
||||
+53
-53
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0"?>
|
||||
<terp>
|
||||
<data>
|
||||
<record model="res.groups" id="group_admin">
|
||||
<record model="res.group" id="group_admin">
|
||||
<field name="name">admin</field>
|
||||
</record>
|
||||
<record model="res.users" id="user_admin">
|
||||
<record model="res.user" id="user_admin">
|
||||
<field name="login">admin</field>
|
||||
<field name="password">admin</field>
|
||||
<field name="name">Administrator</field>
|
||||
@@ -13,9 +13,9 @@
|
||||
<field name="menu_id" ref="ir.act_menu_tree"/>
|
||||
<field name="groups_id" eval="[(6, 0, [group_admin])]"/>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="users_view_form">
|
||||
<field name="name">res.users.form</field>
|
||||
<field name="model">res.users</field>
|
||||
<record model="ir.ui.view" id="user_view_form">
|
||||
<field name="name">res.user.form</field>
|
||||
<field name="model">res.user</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="User">
|
||||
@@ -42,9 +42,9 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="users_view_tree">
|
||||
<field name="name">res.users.tree</field>
|
||||
<field name="model">res.users</field>
|
||||
<record model="ir.ui.view" id="user_view_tree">
|
||||
<field name="name">res.user.tree</field>
|
||||
<field name="model">res.user</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Users">
|
||||
@@ -53,31 +53,31 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="act_users_form">
|
||||
<record model="ir.actions.act_window" id="act_user_form">
|
||||
<field name="name">Users</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">res.users</field>
|
||||
<field name="res_model">res.user</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view"
|
||||
id="act_users_form_view1">
|
||||
id="act_user_form_view1">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="users_view_tree"/>
|
||||
<field name="act_window_id" ref="act_users_form"/>
|
||||
<field name="view_id" ref="user_view_tree"/>
|
||||
<field name="act_window_id" ref="act_user_form"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view"
|
||||
id="act_users_form_view2">
|
||||
id="act_user_form_view2">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="users_view_form"/>
|
||||
<field name="act_window_id" ref="act_users_form"/>
|
||||
<field name="view_id" ref="user_view_form"/>
|
||||
<field name="act_window_id" ref="act_user_form"/>
|
||||
</record>
|
||||
<menuitem name="Administration/Res/"
|
||||
action="act_users_form" id="menu_users_form"/>
|
||||
<record model="ir.ui.view" id="groups_view_form">
|
||||
<field name="name">res.groups.form</field>
|
||||
<field name="model">res.groups</field>
|
||||
action="act_user_form" id="menu_user_form"/>
|
||||
<record model="ir.ui.view" id="group_view_form">
|
||||
<field name="name">res.group.form</field>
|
||||
<field name="model">res.group</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Group">
|
||||
@@ -95,9 +95,9 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="groups_view_tree">
|
||||
<field name="name">res.groups.tree</field>
|
||||
<field name="model">res.groups</field>
|
||||
<record model="ir.ui.view" id="group_view_tree">
|
||||
<field name="name">res.group.tree</field>
|
||||
<field name="model">res.group</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Groups">
|
||||
@@ -105,31 +105,31 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="act_groups_form">
|
||||
<record model="ir.actions.act_window" id="act_group_form">
|
||||
<field name="name">Groups</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">res.groups</field>
|
||||
<field name="res_model">res.group</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view"
|
||||
id="act_groups_form_view1">
|
||||
id="act_group_form_view1">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="groups_view_tree"/>
|
||||
<field name="act_window_id" ref="act_groups_form"/>
|
||||
<field name="view_id" ref="group_view_tree"/>
|
||||
<field name="act_window_id" ref="act_group_form"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view"
|
||||
id="act_groups_form_view2">
|
||||
id="act_group_form_view2">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="groups_view_form"/>
|
||||
<field name="act_window_id" ref="act_groups_form"/>
|
||||
<field name="view_id" ref="group_view_form"/>
|
||||
<field name="act_window_id" ref="act_group_form"/>
|
||||
</record>
|
||||
<menuitem name="Administration/Res/"
|
||||
action="act_groups_form" id="menu_groups_form"/>
|
||||
<record model="ir.ui.view" id="roles_view_form">
|
||||
<field name="name">res.roles.form</field>
|
||||
<field name="model">res.roles</field>
|
||||
action="act_group_form" id="menu_group_form"/>
|
||||
<record model="ir.ui.view" id="role_view_form">
|
||||
<field name="name">res.role.form</field>
|
||||
<field name="model">res.role</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Role">
|
||||
@@ -138,9 +138,9 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="roles_view_tree">
|
||||
<field name="name">res.roles.tree</field>
|
||||
<field name="model">res.roles</field>
|
||||
<record model="ir.ui.view" id="role_view_tree">
|
||||
<field name="name">res.role.tree</field>
|
||||
<field name="model">res.role</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="field_parent">parent_id</field>
|
||||
<field name="arch" type="xml">
|
||||
@@ -149,42 +149,42 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="act_roles_form">
|
||||
<record model="ir.actions.act_window" id="act_role_form">
|
||||
<field name="name">Roles</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">res.roles</field>
|
||||
<field name="res_model">res.role</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view"
|
||||
id="act_roles_form_view1">
|
||||
id="act_role_form_view1">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="roles_view_tree"/>
|
||||
<field name="act_window_id" ref="act_roles_form"/>
|
||||
<field name="view_id" ref="role_view_tree"/>
|
||||
<field name="act_window_id" ref="act_role_form"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view"
|
||||
id="act_roles_form_view2">
|
||||
id="act_role_form_view2">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="roles_view_form"/>
|
||||
<field name="act_window_id" ref="act_roles_form"/>
|
||||
<field name="view_id" ref="role_view_form"/>
|
||||
<field name="act_window_id" ref="act_role_form"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="act_roles_tree">
|
||||
<record model="ir.actions.act_window" id="act_role_tree">
|
||||
<field name="name">Roles</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">res.roles</field>
|
||||
<field name="res_model">res.role</field>
|
||||
<field name="view_type">tree</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view"
|
||||
id="act_roles_form_view3">
|
||||
id="act_role_form_view3">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="roles_view_tree"/>
|
||||
<field name="act_window_id" ref="act_roles_tree"/>
|
||||
<field name="view_id" ref="role_view_tree"/>
|
||||
<field name="act_window_id" ref="act_role_tree"/>
|
||||
</record>
|
||||
<menuitem name="Administration/Res/"
|
||||
action="act_roles_form" id="menu_roles_form"/>
|
||||
action="act_role_form" id="menu_role_form"/>
|
||||
<menuitem name="Administration/Res/"
|
||||
action="act_roles_tree" id="menu_roles_tree"/>
|
||||
action="act_role_tree" id="menu_role_tree"/>
|
||||
</data>
|
||||
</terp>
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ _USER_CACHE = {}
|
||||
|
||||
def login(dbname, loginname, password):
|
||||
cursor = pooler.get_db(dbname).cursor()
|
||||
cursor.execute('SELECT id FROM res_users '
|
||||
cursor.execute('SELECT id FROM res_user '
|
||||
'WHERE login = %s and password = %s and active',
|
||||
(loginname.encode('utf-8'), password.encode('utf-8')))
|
||||
res = cursor.fetchone()
|
||||
@@ -26,7 +26,7 @@ def check(dbname, user, passwd):
|
||||
if _USER_CACHE.has_key(user) and (_USER_CACHE[user]==passwd):
|
||||
return True
|
||||
cursor = pooler.get_db(dbname).cursor()
|
||||
cursor.execute('SELECT count(*) FROM res_users ' \
|
||||
cursor.execute('SELECT count(*) FROM res_user ' \
|
||||
'WHERE id = %d AND password = %s', (int(user), passwd))
|
||||
res = cursor.fetchone()[0]
|
||||
cursor.close()
|
||||
|
||||
@@ -471,7 +471,7 @@ class XMLImport(object):
|
||||
if rec.hasAttribute('groups'):
|
||||
g_names = rec.getAttribute('groups').split(',')
|
||||
groups_value = []
|
||||
groups_obj = self.pool.get('res.groups')
|
||||
groups_obj = self.pool.get('res.group')
|
||||
for group in g_names:
|
||||
if group.startswith('-'):
|
||||
group_id = self.id_get(cursor, group[1:])
|
||||
|
||||
@@ -278,17 +278,17 @@ def trans_load_data(db_name, data, lang, strict=False, lang_name=None):
|
||||
selection = [(x['code'], x['name']) for x in langs]
|
||||
|
||||
values_obj.set(cursor, user, 'meta', 'lang', 'lang',
|
||||
[('res.users', False,)],
|
||||
[('res.user', False,)],
|
||||
False, True, False, meta={
|
||||
'type': 'selection',
|
||||
'string': 'Language',
|
||||
'selection': selection,
|
||||
})
|
||||
|
||||
user_ids = pool.get('res.users').search(cursor, user, [])
|
||||
user_ids = pool.get('res.user').search(cursor, user, [])
|
||||
for user_id in user_ids:
|
||||
values_obj.set(cursor, user, 'meta', 'lang', 'lang',
|
||||
[('res.users', user_id,)], lang, True, False)
|
||||
[('res.user', user_id,)], lang, True, False)
|
||||
|
||||
reader = csv.reader(data)
|
||||
# read the first line of the file (it contains columns titles)
|
||||
|
||||
+5
-5
@@ -99,11 +99,11 @@ class TrytonServer(object):
|
||||
"'ir_act_url', "
|
||||
"'ir_ui_view', "
|
||||
"'ir_ui_menu', "
|
||||
"'res_users', "
|
||||
"'res_groups', "
|
||||
"'res_roles', "
|
||||
"'res_roles_users_rel', "
|
||||
"'res_groups_users_rel', "
|
||||
"'res_user', "
|
||||
"'res_group', "
|
||||
"'res_role', "
|
||||
"'res_role_user_rel', "
|
||||
"'res_group_user_rel', "
|
||||
"'wkf', "
|
||||
"'wkf_activity', "
|
||||
"'wkf_transition', "
|
||||
|
||||
@@ -48,7 +48,7 @@ class DB(Service):
|
||||
tools.trans_load(db_name, filename, lang)
|
||||
cursor = sql_db.db_connect(db_name).cursor()
|
||||
cursor.execute('SELECT login, password, name ' \
|
||||
'FROM res_users ' \
|
||||
'FROM res_user ' \
|
||||
'WHERE login <> \'root\' ORDER BY login')
|
||||
res = cursor.dictfetchall()
|
||||
except Exception, e:
|
||||
|
||||
@@ -65,9 +65,9 @@ def check(cursor, ident, transition, signal):
|
||||
if transition['role_id']:
|
||||
user = ident[0]
|
||||
serv = netsvc.LocalService('object_proxy')
|
||||
user_roles = serv.execute_cr(cursor, user, 'res.users', 'read', [user],
|
||||
user_roles = serv.execute_cr(cursor, user, 'res.user', 'read', [user],
|
||||
['roles_id'])[0]['roles_id']
|
||||
res = res and serv.execute_cr(cursor, user, 'res.roles', 'check',
|
||||
res = res and serv.execute_cr(cursor, user, 'res.role', 'check',
|
||||
user_roles, transition['role_id'])
|
||||
res = res and eval_expr(cursor, ident, transition['condition'])
|
||||
return res
|
||||
|
||||
@@ -90,7 +90,7 @@ class WorkflowTransition(OSV):
|
||||
'trigger_model': fields.char('Trigger Type', size=128),
|
||||
'trigger_expr_id': fields.char('Trigger Expr ID', size=128),
|
||||
'signal': fields.char('Signal (button Name)', size=64),
|
||||
'role_id': fields.many2one('res.roles', 'Role Required'),
|
||||
'role_id': fields.many2one('res.role', 'Role Required'),
|
||||
'condition': fields.char('Condition', required=True, size=128),
|
||||
'act_from': fields.many2one('workflow.activity', 'Source Activity',
|
||||
required=True, select=1),
|
||||
|
||||
Reference in New Issue
Block a user