server/test/data/migratedapp/schema.py
branchreldefsecurity
changeset 3877 7ca53fc72a0a
parent 3546 f0aecddf367e
child 4252 6c4f109c2b03
equal deleted inserted replaced
3876:1169d3154be6 3877:7ca53fc72a0a
    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         }