|
1 from yams.buildobjs import EntityType, RelationDefinition, String, SubjectRelation |
|
2 from cubicweb.schema import ERQLExpression |
|
3 |
|
4 class Affaire(EntityType): |
|
5 permissions = { |
|
6 'read': ('managers', |
|
7 ERQLExpression('X owned_by U'), ERQLExpression('X concerne S?, S owned_by U')), |
|
8 'add': ('managers', ERQLExpression('X concerne S, S owned_by U')), |
|
9 'update': ('managers', 'owners', ERQLExpression('X in_state S, S name in ("pitetre", "en cours")')), |
|
10 'delete': ('managers', 'owners', ERQLExpression('X concerne S, S owned_by U')), |
|
11 } |
|
12 ref = String(fulltextindexed=True, indexed=True, |
|
13 constraints=[SizeConstraint(16)]) |
|
14 documented_by = SubjectRelation('Card') |
|
15 concerne = SubjectRelation(('Societe', 'Note')) |
|
16 |
|
17 |
|
18 class Societe(EntityType): |
|
19 permissions = { |
|
20 'read': ('managers', 'users', 'guests'), |
|
21 'update': ('managers', 'owners', ERQLExpression('U login L, X nom L')), |
|
22 'delete': ('managers', 'owners', ERQLExpression('U login L, X nom L')), |
|
23 'add': ('managers', 'users',) |
|
24 } |
|
25 |
|
26 |
|
27 class Division(Societe): |
|
28 __specializes_schema__ = True |
|
29 |
|
30 |
|
31 class Note(EntityType): |
|
32 pass |
|
33 |
|
34 |
|
35 class require_permission(RelationDefinition): |
|
36 subject = ('Card', 'Note', 'Person') |
|
37 object = 'CWPermission' |
|
38 |
|
39 |
|
40 class require_state(RelationDefinition): |
|
41 subject = 'CWPermission' |
|
42 object = 'State' |