11 from yams.constraints import SizeConstraint |
11 from yams.constraints import SizeConstraint |
12 from cubicweb.schema import (WorkflowableEntityType, RQLConstraint, |
12 from cubicweb.schema import (WorkflowableEntityType, RQLConstraint, |
13 ERQLExpression, RRQLExpression) |
13 ERQLExpression, RRQLExpression) |
14 |
14 |
15 class Affaire(WorkflowableEntityType): |
15 class Affaire(WorkflowableEntityType): |
16 permissions = { |
16 __permissions__ = { |
17 'read': ('managers', |
17 'read': ('managers', |
18 ERQLExpression('X owned_by U'), ERQLExpression('X concerne S?, S owned_by U')), |
18 ERQLExpression('X owned_by U'), ERQLExpression('X concerne S?, S owned_by U')), |
19 'add': ('managers', ERQLExpression('X concerne S, S owned_by U')), |
19 'add': ('managers', ERQLExpression('X concerne S, S owned_by U')), |
20 'update': ('managers', 'owners', ERQLExpression('X in_state S, S name in ("pitetre", "en cours")')), |
20 'update': ('managers', 'owners', ERQLExpression('X in_state S, S name in ("pitetre", "en cours")')), |
21 'delete': ('managers', 'owners', ERQLExpression('X concerne S, S owned_by U')), |
21 'delete': ('managers', 'owners', ERQLExpression('X concerne S, S owned_by U')), |
37 todo_by = SubjectRelation('Personne', cardinality='?*') |
37 todo_by = SubjectRelation('Personne', cardinality='?*') |
38 documented_by = SubjectRelation('Card') |
38 documented_by = SubjectRelation('Card') |
39 |
39 |
40 |
40 |
41 class Societe(EntityType): |
41 class Societe(EntityType): |
42 permissions = { |
42 __permissions__ = { |
43 'read': ('managers', 'users', 'guests'), |
43 'read': ('managers', 'users', 'guests'), |
44 'update': ('managers', 'owners', ERQLExpression('U login L, X nom L')), |
44 'update': ('managers', 'owners', ERQLExpression('U login L, X nom L')), |
45 'delete': ('managers', 'owners', ERQLExpression('U login L, X nom L')), |
45 'delete': ('managers', 'owners', ERQLExpression('U login L, X nom L')), |
46 'add': ('managers', 'users',) |
46 'add': ('managers', 'users',) |
47 } |
47 } |
119 |
119 |
120 class connait(RelationType): |
120 class connait(RelationType): |
121 symetric = True |
121 symetric = True |
122 |
122 |
123 class concerne(RelationType): |
123 class concerne(RelationType): |
124 permissions = { |
124 __permissions__ = { |
125 'read': ('managers', 'users', 'guests'), |
125 'read': ('managers', 'users', 'guests'), |
126 'add': ('managers', RRQLExpression('U has_update_permission S')), |
126 'add': ('managers', RRQLExpression('U has_update_permission S')), |
127 'delete': ('managers', RRQLExpression('O owned_by U')), |
127 'delete': ('managers', RRQLExpression('O owned_by U')), |
128 } |
128 } |
129 |
129 |
130 class travaille(RelationType): |
130 class travaille(RelationType): |
131 permissions = { |
131 __permissions__ = { |
132 'read': ('managers', 'users', 'guests'), |
132 'read': ('managers', 'users', 'guests'), |
133 'add': ('managers', RRQLExpression('U has_update_permission S')), |
133 'add': ('managers', RRQLExpression('U has_update_permission S')), |
134 'delete': ('managers', RRQLExpression('O owned_by U')), |
134 'delete': ('managers', RRQLExpression('O owned_by U')), |
135 } |
135 } |
136 |
136 |
137 class para(RelationType): |
137 class para(RelationType): |
138 permissions = { |
138 __permissions__ = { |
139 'read': ('managers', 'users', 'guests'), |
139 'read': ('managers', 'users', 'guests'), |
140 'add': ('managers', ERQLExpression('X in_state S, S name "todo"')), |
140 'add': ('managers', ERQLExpression('X in_state S, S name "todo"')), |
141 'delete': ('managers', ERQLExpression('X in_state S, S name "todo"')), |
141 'delete': ('managers', ERQLExpression('X in_state S, S name "todo"')), |
142 } |
142 } |
143 |
143 |
144 class test(RelationType): |
144 class test(RelationType): |
145 permissions = {'read': ('managers', 'users', 'guests'), |
145 __permissions__ = {'read': ('managers', 'users', 'guests'), |
146 'delete': ('managers',), |
146 'delete': ('managers',), |
147 'add': ('managers',)} |
147 'add': ('managers',)} |
148 |
148 |
149 class multisource_rel(RelationDefinition): |
149 class multisource_rel(RelationDefinition): |
150 subject = ('Card', 'Note') |
150 subject = ('Card', 'Note') |