11 from yams.constraints import SizeConstraint, UniqueConstraint |
11 from yams.constraints import SizeConstraint, UniqueConstraint |
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(EntityType): |
15 class Affaire(EntityType): |
16 permissions = { |
16 __permissions__ = { |
17 'read': ('managers', 'users', 'guests'), |
17 'read': ('managers', 'users', 'guests'), |
18 'add': ('managers', ERQLExpression('X concerne S, S owned_by U')), |
18 'add': ('managers', ERQLExpression('X concerne S, S owned_by U')), |
19 'update': ('managers', 'owners', ERQLExpression('X concerne S, S owned_by U')), |
19 'update': ('managers', 'owners', ERQLExpression('X concerne S, S owned_by U')), |
20 'delete': ('managers', 'owners', ERQLExpression('X concerne S, S owned_by U')), |
20 'delete': ('managers', 'owners', ERQLExpression('X concerne S, S owned_by U')), |
21 } |
21 } |
25 sujet = String(fulltextindexed=True, |
25 sujet = String(fulltextindexed=True, |
26 constraints=[SizeConstraint(256)]) |
26 constraints=[SizeConstraint(256)]) |
27 concerne = SubjectRelation('Societe') |
27 concerne = SubjectRelation('Societe') |
28 |
28 |
29 class concerne(RelationType): |
29 class concerne(RelationType): |
30 permissions = { |
30 __permissions__ = { |
31 'read': ('managers', 'users', 'guests'), |
31 'read': ('managers', 'users', 'guests'), |
32 'add': ('managers', RRQLExpression('U has_update_permission S')), |
32 'add': ('managers', RRQLExpression('U has_update_permission S')), |
33 'delete': ('managers', RRQLExpression('O owned_by U')), |
33 'delete': ('managers', RRQLExpression('O owned_by U')), |
34 } |
34 } |
35 |
35 |
40 newnotinlined = SubjectRelation('Affaire', cardinality='?*') |
40 newnotinlined = SubjectRelation('Affaire', cardinality='?*') |
41 |
41 |
42 class Note(Para): |
42 class Note(Para): |
43 __specializes_schema__ = True |
43 __specializes_schema__ = True |
44 |
44 |
45 permissions = {'read': ('managers', 'users', 'guests',), |
45 __permissions__ = {'read': ('managers', 'users', 'guests',), |
46 'update': ('managers', 'owners',), |
46 'update': ('managers', 'owners',), |
47 'delete': ('managers', ), |
47 'delete': ('managers', ), |
48 'add': ('managers', |
48 'add': ('managers', |
49 ERQLExpression('X ecrit_part PE, U in_group G, ' |
49 ERQLExpression('X ecrit_part PE, U in_group G, ' |
50 'PE require_permission P, P name "add_note", ' |
50 'PE require_permission P, P name "add_note", ' |
61 class Text(Para): |
61 class Text(Para): |
62 __specializes_schema__ = True |
62 __specializes_schema__ = True |
63 summary = String(maxsize=512) |
63 summary = String(maxsize=512) |
64 |
64 |
65 class ecrit_par(RelationType): |
65 class ecrit_par(RelationType): |
66 permissions = {'read': ('managers', 'users', 'guests',), |
66 __permissions__ = {'read': ('managers', 'users', 'guests',), |
67 'delete': ('managers', ), |
67 'delete': ('managers', ), |
68 'add': ('managers', |
68 'add': ('managers', |
69 RRQLExpression('O require_permission P, P name "add_note", ' |
69 RRQLExpression('O require_permission P, P name "add_note", ' |
70 'U in_group G, P require_group G'),) |
70 'U in_group G, P require_group G'),) |
71 } |
71 } |
103 concerne = SubjectRelation('Affaire') |
103 concerne = SubjectRelation('Affaire') |
104 concerne2 = SubjectRelation(('Affaire', 'Note'), cardinality='1*') |
104 concerne2 = SubjectRelation(('Affaire', 'Note'), cardinality='1*') |
105 connait = SubjectRelation('Personne', symetric=True) |
105 connait = SubjectRelation('Personne', symetric=True) |
106 |
106 |
107 class Societe(WorkflowableEntityType): |
107 class Societe(WorkflowableEntityType): |
108 permissions = { |
108 __permissions__ = { |
109 'read': ('managers', 'users', 'guests'), |
109 'read': ('managers', 'users', 'guests'), |
110 'update': ('managers', 'owners'), |
110 'update': ('managers', 'owners'), |
111 'delete': ('managers', 'owners'), |
111 'delete': ('managers', 'owners'), |
112 'add': ('managers', 'users',) |
112 'add': ('managers', 'users',) |
113 } |
113 } |