Remove role (use group instead) and put ir_lang in init.sql
This commit is contained in:
1 parent
eaf8d9853e
commit
080cec9dce
8 files changed
+29
-117
No files matched your search
+11
-13
@@ -78,6 +78,16 @@ CREATE TABLE ir_translation (
|
||||
primary key(id)
|
||||
);
|
||||
|
||||
CREATE TABLE ir_lang (
|
||||
id serial NOT NULL,
|
||||
name varchar(64) NOT NULL,
|
||||
code varchar(5) NOT NULL,
|
||||
translatable boolean default False,
|
||||
active boolean default True,
|
||||
direction varchar(3) NOT NULL,
|
||||
primary key(id)
|
||||
);
|
||||
|
||||
---------------------------------
|
||||
-- Res user
|
||||
---------------------------------
|
||||
@@ -107,18 +117,6 @@ CREATE TABLE res_group (
|
||||
primary key(id)
|
||||
);
|
||||
|
||||
create table res_role (
|
||||
id serial NOT NULL,
|
||||
parent_id int references res_role on delete set null,
|
||||
name varchar(32) NOT NULL,
|
||||
primary key(id)
|
||||
);
|
||||
|
||||
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_group_user_rel (
|
||||
uid integer NOT NULL references res_user on delete cascade,
|
||||
gid integer NOT NULL references res_group on delete cascade
|
||||
@@ -164,7 +162,7 @@ create table wkf_transition
|
||||
trigger_expr_id varchar(128) default NULL,
|
||||
|
||||
signal varchar(64) default null,
|
||||
role_id int references res_role on delete set null,
|
||||
"group" int references res_group on delete set null,
|
||||
|
||||
primary key(id)
|
||||
);
|
||||
|
||||
@@ -5,6 +5,7 @@ from trytond.osv import fields, OSV
|
||||
class Lang(OSV):
|
||||
"Language"
|
||||
_name = "ir.lang"
|
||||
_log_access = False
|
||||
_description = __doc__
|
||||
_columns = {
|
||||
'name': fields.Char('Name', size=64, required=True),
|
||||
|
||||
@@ -34,29 +34,6 @@ class Group(OSV):
|
||||
Group()
|
||||
|
||||
|
||||
class Role(OSV):
|
||||
"Role"
|
||||
_name = "res.role"
|
||||
_description = __doc__
|
||||
_columns = {
|
||||
'name': fields.Char('Role Name', size=64, required=True),
|
||||
'parent_id': fields.Many2One('res.role', 'Parent', select=1),
|
||||
'child_id': fields.One2Many('res.role', 'parent_id', 'Childs')
|
||||
}
|
||||
|
||||
def check_recursion(self, cursor, user, ids, parent=None):
|
||||
"Check for recursion"
|
||||
return super(Role, self).check_recursion(cursor, user, ids,
|
||||
parent=parent)
|
||||
|
||||
_constraints = [
|
||||
(check_recursion, 'Error! You can not create recursive roles.',
|
||||
['parent_id'])
|
||||
]
|
||||
|
||||
Role()
|
||||
|
||||
|
||||
class User(OSV):
|
||||
"User"
|
||||
_name = "res.user"
|
||||
@@ -73,8 +50,6 @@ class User(OSV):
|
||||
'menu_id': fields.Many2One('ir.action', 'Menu Action'),
|
||||
'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',
|
||||
'user_id', 'rule_group_id', 'Rules',
|
||||
|
||||
@@ -149,65 +149,5 @@
|
||||
</record>
|
||||
<menuitem parent_id="res.menu_res"
|
||||
action="act_group_form" id="menu_group_form"/>
|
||||
<record model="ir.ui.view" id="role_view_form">
|
||||
<field name="model">res.role</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<![CDATA[
|
||||
<form string="Role">
|
||||
<label name="name"/>
|
||||
<field name="name"/>
|
||||
<label name="parent_id"/>
|
||||
<field name="parent_id"/>
|
||||
</form>
|
||||
]]>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="role_view_tree">
|
||||
<field name="model">res.role</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="field_parent">parent_id</field>
|
||||
<field name="arch" type="xml">
|
||||
<![CDATA[
|
||||
<tree string="Roles">
|
||||
<field name="name" select="1"/>
|
||||
</tree>
|
||||
]]>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window" id="act_role_form">
|
||||
<field name="name">Roles</field>
|
||||
<field name="type">ir.action.act_window</field>
|
||||
<field name="res_model">res.role</field>
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_role_form_view1">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_id" ref="role_view_tree"/>
|
||||
<field name="act_window_id" ref="act_role_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_role_form_view2">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_id" ref="role_view_form"/>
|
||||
<field name="act_window_id" ref="act_role_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window" id="act_role_tree">
|
||||
<field name="name">Roles</field>
|
||||
<field name="type">ir.action.act_window</field>
|
||||
<field name="res_model">res.role</field>
|
||||
<field name="view_type">tree</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_role_form_view3">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_id" ref="role_view_tree"/>
|
||||
<field name="act_window_id" ref="act_role_tree"/>
|
||||
</record>
|
||||
<menuitem parent_id="res.menu_res"
|
||||
action="act_role_form" id="menu_role_form"/>
|
||||
<menuitem parent_id="res.menu_res"
|
||||
action="act_role_tree" id="menu_role_tree"/>
|
||||
</data>
|
||||
</tryton>
|
||||
+3
-4
@@ -92,8 +92,6 @@ class TrytonServer(object):
|
||||
"'ir_ui_menu', "
|
||||
"'res_user', "
|
||||
"'res_group', "
|
||||
"'res_role', "
|
||||
"'res_role_user_rel', "
|
||||
"'res_group_user_rel', "
|
||||
"'wkf', "
|
||||
"'wkf_activity', "
|
||||
@@ -104,8 +102,9 @@ class TrytonServer(object):
|
||||
"'wkf_logs', "
|
||||
"'ir_module_category', "
|
||||
"'ir_module_module', "
|
||||
"'ir_module_module_dependency'"
|
||||
"'ir_translation'"
|
||||
"'ir_module_module_dependency, '"
|
||||
"'ir_translation, '"
|
||||
"'ir_lang'"
|
||||
")")
|
||||
if len(cursor.fetchall()) == 0:
|
||||
self.logger.notify_channel("init", netsvc.LOG_INFO, "init db")
|
||||
|
||||
@@ -62,12 +62,11 @@ def check(cursor, ident, transition, signal):
|
||||
if transition['signal']:
|
||||
res = (signal == transition['signal'])
|
||||
|
||||
if transition['role_id']:
|
||||
if transition['group']:
|
||||
user = ident[0]
|
||||
serv = netsvc.LocalService('object_proxy')
|
||||
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.role', 'check',
|
||||
user_roles, transition['role_id'])
|
||||
user_groups = serv.execute_cr(cursor, user, 'res.user', 'read', user,
|
||||
['groups_id'])['groups_id']
|
||||
res = transition['group'] in user_groups
|
||||
res = res and eval_expr(cursor, ident, transition['condition'])
|
||||
return res
|
||||
@@ -93,7 +93,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.role', 'Role Required'),
|
||||
'group': fields.many2one('res.group', 'Group Required'),
|
||||
'condition': fields.char('Condition', required=True, size=128),
|
||||
'act_from': fields.many2one('workflow.activity', 'Source Activity',
|
||||
required=True, select=1, ondelete='cascade'),
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
<tree string="Transitions">
|
||||
<field name="act_to"/>
|
||||
<field name="signal"/>
|
||||
<field name="role_id"/>
|
||||
<field name="group"/>
|
||||
<field name="condition"/>
|
||||
<field name="trigger_model"/>
|
||||
<field name="trigger_expr_id"/>
|
||||
@@ -96,8 +96,8 @@
|
||||
<field name="condition" colspan="3"/>
|
||||
<label name="signal"/>
|
||||
<field name="signal"/>
|
||||
<label name="role_id"/>
|
||||
<field name="role_id"/>
|
||||
<label name="group"/>
|
||||
<field name="group"/>
|
||||
<label name="trigger_model"/>
|
||||
<field name="trigger_model"/>
|
||||
<label name="trigger_expr_id"/>
|
||||
@@ -109,7 +109,7 @@
|
||||
<tree string="Transitions">
|
||||
<field name="act_from"/>
|
||||
<field name="signal"/>
|
||||
<field name="role_id"/>
|
||||
<field name="group"/>
|
||||
<field name="condition"/>
|
||||
<field name="trigger_model"/>
|
||||
<field name="trigger_expr_id"/>
|
||||
@@ -122,8 +122,8 @@
|
||||
<field name="condition" colspan="3"/>
|
||||
<label name="signal"/>
|
||||
<field name="signal"/>
|
||||
<label name="role_id"/>
|
||||
<field name="role_id"/>
|
||||
<label name="group"/>
|
||||
<field name="group"/>
|
||||
<label name="trigger_model"/>
|
||||
<field name="trigger_model"/>
|
||||
<label name="trigger_expr_id"/>
|
||||
@@ -183,8 +183,8 @@
|
||||
<field name="condition" colspan="3"/>
|
||||
<label name="signal"/>
|
||||
<field name="signal"/>
|
||||
<label name="role_id"/>
|
||||
<field name="role_id"/>
|
||||
<label name="group"/>
|
||||
<field name="group"/>
|
||||
<label name="trigger_model"/>
|
||||
<field name="trigger_model"/>
|
||||
<label name="trigger_expr_id"/>
|
||||
@@ -202,7 +202,7 @@
|
||||
<field name="act_from" select="1"/>
|
||||
<field name="act_to" select="1"/>
|
||||
<field name="signal"/>
|
||||
<field name="role_id"/>
|
||||
<field name="group"/>
|
||||
<field name="condition"/>
|
||||
<field name="trigger_model"/>
|
||||
<field name="trigger_expr_id"/>
|
||||
|
||||
Reference in new issue
Block a user