schemas/bootstrap.py
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Fri, 19 Feb 2010 09:34:14 +0100
branchstable
changeset 4643 921737d2e3a8
parent 4588 36b700c00d38
child 4754 6bf17f810975
permissions -rw-r--r--
fix optimisation with super session that may lead to integrity loss at some point I've decided to stop ensuring ?1 cardinality was respected when adding a new relation using a super session, to avoid the cost of the delete query. That was yet discussable because it introduced unexpected difference between execute and unsafe_execute, which is imo not worth it. Also, now that rql() in migration script default to unsafe_execute, we definitly don't want that implicit behaviour change (which already cause bug when for instance adding another default workflow for an entity type: without that fix we end up with *two* default workflows while the schema tells we can have only one. IMO we should go to the direction that super session skip all security check, but nothing else, unless explicitly asked.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2476
1294a6bdf3bf application -> instance where it makes sense
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2459
diff changeset
     1
"""core CubicWeb schema necessary for bootstrapping the actual instance's schema
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     2
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     3
:organization: Logilab
4212
ab6573088b4a update copyright: welcome 2010
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
     4
:copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     5
:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
1977
606923dff11b big bunch of copyright / docstring update
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 1451
diff changeset
     6
:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     7
"""
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
     8
__docformat__ = "restructuredtext en"
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
     9
_ = unicode
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    10
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
    11
from yams.buildobjs import (EntityType, RelationType, RelationDefinition,
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
    12
                            SubjectRelation, RichString, String, Boolean, Int)
2459
d088d0ff48a1 move RichString and co to yams, keeping only a small monkeypatch for cw-page-template here
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2438
diff changeset
    13
from cubicweb.schema import RQLConstraint
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
    14
from cubicweb.schemas import META_ETYPE_PERMS, META_RTYPE_PERMS
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    15
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    16
# not restricted since as "is" is handled as other relations, guests need
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    17
# access to this
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
    18
class CWEType(EntityType):
2476
1294a6bdf3bf application -> instance where it makes sense
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2459
diff changeset
    19
    """define an entity type, used to build the instance schema"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
    20
    __permissions__ = META_ETYPE_PERMS
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    21
    name = String(required=True, indexed=True, internationalizable=True,
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    22
                  unique=True, maxsize=64)
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    23
    description = RichString(internationalizable=True,
627
36ade1128af7 use RichString wherever possible in the stdlib
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 0
diff changeset
    24
                             description=_('semantic description of this entity type'))
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    25
    # necessary to filter using RQL
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    26
    final = Boolean(description=_('automatic'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    27
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    28
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
    29
class CWRType(EntityType):
2476
1294a6bdf3bf application -> instance where it makes sense
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2459
diff changeset
    30
    """define a relation type, used to build the instance schema"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
    31
    __permissions__ = META_ETYPE_PERMS
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    32
    name = String(required=True, indexed=True, internationalizable=True,
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    33
                  unique=True, maxsize=64)
2129
fbfab570a276 use RichString
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2127
diff changeset
    34
    description = RichString(internationalizable=True,
fbfab570a276 use RichString
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2127
diff changeset
    35
                             description=_('semantic description of this relation type'))
4467
0e73d299730a fix long-waiting symetric typo: should be spelled symmetric. Add auto database migration on schema deserialization
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4319
diff changeset
    36
    symmetric = Boolean(description=_('is this relation equivalent in both direction ?'))
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    37
    inlined = Boolean(description=_('is this relation physically inlined? you should know what you\'re doing if you are changing this!'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    38
    fulltext_container = String(description=_('if full text content of subject/object entity '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    39
                                              'should be added to other side entity (the container).'),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    40
                                vocabulary=('', _('subject'), _('object')),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    41
                                maxsize=8, default=None)
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    42
    final = Boolean(description=_('automatic'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    43
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    44
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
    45
class CWAttribute(EntityType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    46
    """define a final relation: link a final relation type from a non final
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    47
    entity to a final entity type.
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    48
2476
1294a6bdf3bf application -> instance where it makes sense
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2459
diff changeset
    49
    used to build the instance schema
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    50
    """
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
    51
    __permissions__ = META_ETYPE_PERMS
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
    52
    relation_type = SubjectRelation('CWRType', cardinality='1*',
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    53
                                    constraints=[RQLConstraint('O final TRUE')],
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    54
                                    composite='object')
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
    55
    from_entity = SubjectRelation('CWEType', cardinality='1*',
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    56
                                  constraints=[RQLConstraint('O final FALSE')],
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    57
                                  composite='object')
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
    58
    to_entity = SubjectRelation('CWEType', cardinality='1*',
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    59
                                constraints=[RQLConstraint('O final TRUE')],
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    60
                                composite='object')
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
    61
    constrained_by = SubjectRelation('CWConstraint', cardinality='*1', composite='subject')
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    62
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    63
    cardinality = String(maxsize=2, internationalizable=True,
1979
daf297034197 remove meaningless cards for attributes
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 1977
diff changeset
    64
                         vocabulary=[_('?1'), _('11')],
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    65
                         description=_('subject/object cardinality'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    66
    ordernum = Int(description=('control subject entity\'s relations order'), default=0)
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    67
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    68
    indexed = Boolean(description=_('create an index for quick search on this attribute'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    69
    fulltextindexed = Boolean(description=_('index this attribute\'s value in the plain text index'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    70
    internationalizable = Boolean(description=_('is this attribute\'s value translatable'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    71
    defaultval = String(maxsize=256)
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    72
2129
fbfab570a276 use RichString
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2127
diff changeset
    73
    description = RichString(internationalizable=True,
fbfab570a276 use RichString
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2127
diff changeset
    74
                             description=_('semantic description of this attribute'))
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    75
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    76
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    77
CARDINALITY_VOCAB = [_('?*'), _('1*'), _('+*'), _('**'),
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    78
                     _('?+'), _('1+'), _('++'), _('*+'),
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    79
                     _('?1'), _('11'), _('+1'), _('*1'),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    80
                     _('??'), _('1?'), _('+?'), _('*?')]
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    81
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
    82
class CWRelation(EntityType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    83
    """define a non final relation: link a non final relation type from a non
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    84
    final entity to a non final entity type.
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    85
2476
1294a6bdf3bf application -> instance where it makes sense
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2459
diff changeset
    86
    used to build the instance schema
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    87
    """
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
    88
    __permissions__ = META_ETYPE_PERMS
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
    89
    relation_type = SubjectRelation('CWRType', cardinality='1*',
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    90
                                    constraints=[RQLConstraint('O final FALSE')],
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    91
                                    composite='object')
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
    92
    from_entity = SubjectRelation('CWEType', cardinality='1*',
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    93
                                  constraints=[RQLConstraint('O final FALSE')],
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    94
                                  composite='object')
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
    95
    to_entity = SubjectRelation('CWEType', cardinality='1*',
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    96
                                constraints=[RQLConstraint('O final FALSE')],
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    97
                                composite='object')
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
    98
    constrained_by = SubjectRelation('CWConstraint', cardinality='*1', composite='subject')
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
    99
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   100
    cardinality = String(maxsize=2, internationalizable=True,
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   101
                         vocabulary=CARDINALITY_VOCAB,
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   102
                         description=_('subject/object cardinality'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   103
    ordernum = Int(description=_('control subject entity\'s relations order'),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   104
                   default=0)
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   105
    composite = String(description=_('is the subject/object entity of the relation '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   106
                                     'composed of the other ? This implies that when '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   107
                                     'the composite is deleted, composants are also '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   108
                                     'deleted.'),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   109
                       vocabulary=('', _('subject'), _('object')),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   110
                       maxsize=8, default=None)
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
   111
2129
fbfab570a276 use RichString
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2127
diff changeset
   112
    description = RichString(internationalizable=True,
fbfab570a276 use RichString
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2127
diff changeset
   113
                             description=_('semantic description of this relation'))
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
   114
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   115
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   116
# not restricted since it has to be read when checking allowed transitions
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   117
class RQLExpression(EntityType):
4535
71c86a315a9a update translatable docstring
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4467
diff changeset
   118
    """define a rql expression used to define permissions"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   119
    __permissions__ = META_ETYPE_PERMS
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   120
    exprtype = String(required=True, vocabulary=['ERQLExpression', 'RRQLExpression'])
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   121
    mainvars = String(maxsize=8,
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   122
                      description=_('name of the main variables which should be '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   123
                                    'used in the selection if necessary (comma '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   124
                                    'separated)'))
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
   125
    expression = String(required=True,
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   126
                        description=_('restriction part of a rql query. '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   127
                                      'For entity rql expression, X and U are '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   128
                                      'predefined respectivly to the current object and to '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   129
                                      'the request user. For relation rql expression, '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   130
                                      'S, O and U are predefined respectivly to the current '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   131
                                      'relation\'subject, object and to '
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   132
                                      'the request user. '))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   133
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   134
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   135
class CWConstraint(EntityType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   136
    """define a schema constraint"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   137
    __permissions__ = META_ETYPE_PERMS
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
   138
    cstrtype = SubjectRelation('CWConstraintType', cardinality='1*')
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   139
    value = String(description=_('depends on the constraint type'))
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   140
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   141
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   142
class CWConstraintType(EntityType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   143
    """define a schema constraint type"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   144
    __permissions__ = META_ETYPE_PERMS
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   145
    name = String(required=True, indexed=True, internationalizable=True,
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   146
                  unique=True, maxsize=64)
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   147
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   148
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   149
# not restricted since it has to be read when checking allowed transitions
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   150
class CWGroup(EntityType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   151
    """define a CubicWeb users group"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   152
    __permissions__ = META_ETYPE_PERMS
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   153
    name = String(required=True, indexed=True, internationalizable=True,
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   154
                  unique=True, maxsize=64)
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   155
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
   156
3392
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   157
class CWProperty(EntityType):
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   158
    """used for cubicweb configuration. Once a property has been created you
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   159
    can't change the key.
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   160
    """
4003
b9436fe77c9e fix bad merge
Sandrine Ribeau <sandrine.ribeau@logilab.fr>
parents: 3890
diff changeset
   161
    __permissions__ = {
3392
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   162
        'read':   ('managers', 'users', 'guests'),
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   163
        'add':    ('managers', 'users',),
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   164
        'update': ('managers', 'owners',),
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   165
        'delete': ('managers', 'owners',),
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   166
        }
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   167
    # key is a reserved word for mysql
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   168
    pkey = String(required=True, internationalizable=True, maxsize=256,
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   169
                  description=_('defines what\'s the property is applied for. '
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   170
                                'You must select this first to be able to set '
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   171
                                'value'))
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   172
    value = String(internationalizable=True, maxsize=256)
36bcf206e157 [schema] CWProperty is required at bootstrap time
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 2476
diff changeset
   173
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   174
class relation_type(RelationType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   175
    """link a relation definition to its relation type"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   176
    __permissions__ = META_RTYPE_PERMS
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   177
    inlined = True
1451
982e8616d9a2 delete-trailing-whitespaces
sylvain.thenault@logilab.fr
parents: 1398
diff changeset
   178
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   179
class from_entity(RelationType):
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   180
    """link a relation definition to its subject entity type"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   181
    __permissions__ = META_RTYPE_PERMS
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   182
    inlined = True
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   183
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   184
class to_entity(RelationType):
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   185
    """link a relation definition to its object entity type"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   186
    __permissions__ = META_RTYPE_PERMS
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   187
    inlined = True
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   188
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   189
class constrained_by(RelationType):
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   190
    """constraints applying on this relation"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   191
    __permissions__ = META_RTYPE_PERMS
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   192
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   193
class cstrtype(RelationType):
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   194
    """constraint factory"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   195
    __permissions__ = META_RTYPE_PERMS
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   196
    inlined = True
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   197
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   198
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   199
class read_permission_cwgroup(RelationDefinition):
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   200
    """groups allowed to read entities/relations of this type"""
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   201
    __permissions__ = META_RTYPE_PERMS
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   202
    name = 'read_permission'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   203
    subject = ('CWEType', 'CWAttribute', 'CWRelation')
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   204
    object = 'CWGroup'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   205
    cardinality = '**'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   206
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   207
class add_permission_cwgroup(RelationDefinition):
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   208
    """groups allowed to add entities/relations of this type"""
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   209
    __permissions__ = META_RTYPE_PERMS
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   210
    name = 'add_permission'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   211
    subject = ('CWEType', 'CWRelation')
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   212
    object = 'CWGroup'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   213
    cardinality = '**'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   214
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   215
class delete_permission_cwgroup(RelationDefinition):
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   216
    """groups allowed to delete entities/relations of this type"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   217
    __permissions__ = META_RTYPE_PERMS
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   218
    name = 'delete_permission'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   219
    subject = ('CWEType', 'CWRelation')
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   220
    object = 'CWGroup'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   221
    cardinality = '**'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   222
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   223
class update_permission_cwgroup(RelationDefinition):
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   224
    """groups allowed to update entities/relations of this type"""
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   225
    __permissions__ = META_RTYPE_PERMS
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   226
    name = 'update_permission'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   227
    subject = ('CWEType', 'CWAttribute')
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   228
    object = 'CWGroup'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   229
    cardinality = '**'
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   230
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   231
class read_permission_rqlexpr(RelationDefinition):
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   232
    """rql expression allowing to read entities/relations of this type"""
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   233
    __permissions__ = META_RTYPE_PERMS
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   234
    name = 'read_permission'
4570
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   235
    subject = ('CWEType', 'CWAttribute', 'CWRelation')
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   236
    object = 'RQLExpression'
4570
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   237
    cardinality = '*?'
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   238
    composite = 'subject'
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   239
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   240
class add_permission_rqlexpr(RelationDefinition):
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   241
    """rql expression allowing to add entities/relations of this type"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   242
    __permissions__ = META_RTYPE_PERMS
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   243
    name = 'add_permission'
4570
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   244
    subject = ('CWEType', 'CWRelation')
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   245
    object = 'RQLExpression'
4570
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   246
    cardinality = '*?'
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   247
    composite = 'subject'
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   248
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   249
class delete_permission_rqlexpr(RelationDefinition):
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   250
    """rql expression allowing to delete entities/relations of this type"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   251
    __permissions__ = META_RTYPE_PERMS
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   252
    name = 'delete_permission'
4570
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   253
    subject = ('CWEType', 'CWRelation')
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   254
    object = 'RQLExpression'
4570
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   255
    cardinality = '*?'
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   256
    composite = 'subject'
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   257
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   258
class update_permission_rqlexpr(RelationDefinition):
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   259
    """rql expression allowing to update entities/relations of this type"""
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   260
    __permissions__ = META_RTYPE_PERMS
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   261
    name = 'update_permission'
4570
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   262
    subject = ('CWEType', 'CWAttribute')
4588
36b700c00d38 fix *_permissions schema: using the same cardinality/composite properties for cwgroup/rqlexpr leads to important pbs...
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4570
diff changeset
   263
    object = 'RQLExpression'
4570
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   264
    cardinality = '*?'
ede247bbbf62 follow yams api change: attributes permissions are now defined for
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 4535
diff changeset
   265
    composite = 'subject'
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   266
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   267
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   268
class is_(RelationType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   269
    """core relation indicating the type of an entity
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   270
    """
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   271
    name = 'is'
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   272
    # don't explicitly set composite here, this is handled anyway
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   273
    #composite = 'object'
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   274
    __permissions__ = {
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   275
        'read':   ('managers', 'users', 'guests'),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   276
        'add':    (),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   277
        'delete': (),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   278
        }
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   279
    cardinality = '1*'
2438
576f4d51f826 [cleanup] fix deprecation warnings
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 2140
diff changeset
   280
    subject = '*'
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
   281
    object = 'CWEType'
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   282
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   283
class is_instance_of(RelationType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   284
    """core relation indicating the types (including specialized types)
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   285
    of an entity
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   286
    """
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   287
    # don't explicitly set composite here, this is handled anyway
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   288
    #composite = 'object'
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   289
    __permissions__ = {
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   290
        'read':   ('managers', 'users', 'guests'),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   291
        'add':    (),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   292
        'delete': (),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   293
        }
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   294
    cardinality = '+*'
2438
576f4d51f826 [cleanup] fix deprecation warnings
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 2140
diff changeset
   295
    subject = '*'
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
   296
    object = 'CWEType'
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   297
2140
1cba3393ba01 update schema definition to avoid deprecation warning with new yams api
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2129
diff changeset
   298
class specializes(RelationType):
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   299
    name = 'specializes'
3877
7ca53fc72a0a reldefsecurity branch :
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2476
diff changeset
   300
    __permissions__ = {
0
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   301
        'read':   ('managers', 'users', 'guests'),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   302
        'add':    ('managers',),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   303
        'delete': ('managers',),
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   304
        }
b97547f5f1fa Showtime !
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   305
    cardinality = '?*'
1398
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
   306
    subject = 'CWEType'
5fe84a5f7035 rename internal entity types to have CW prefix instead of E
sylvain.thenault@logilab.fr
parents: 628
diff changeset
   307
    object = 'CWEType'