server/test/data/schema.py
branchreldefsecurity
changeset 3877 7ca53fc72a0a
parent 3546 f0aecddf367e
child 3998 94cc7cad3d2d
equal deleted inserted replaced
3876:1169d3154be6 3877:7ca53fc72a0a
    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')