test/data_schemareader/schema.py
author Julien Cristau <julien.cristau@logilab.fr>
Mon, 07 Apr 2014 18:04:56 +0200
changeset 9636 e35ae8617c03
parent 8167 41ec579e27c4
child 10907 9ae707db5265
permissions -rw-r--r--
Fix constraint sync during migration - restore constraints lost during merge in test schema. - use constraint_by_eid in BeforeDeleteCWConstraintHook as done in 3.17.14 for BeforeDeleteConstrainedByHook. Fixes handling of multiple constraints of the same type. - make sync_schema_props_perms() delete the CWConstraint entity instead of the constrained_by relation. In 3.19, the latter doesn't automatically result in the former just because the relation is composite. Simplify the constraint migration to delete all removed constraints and recreate new ones even if they share the same type; that optimization made the code more complicated for (AFAICT) no significant reason.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8167
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     1
from cubicweb.schemas.base import in_group, CWSourceSchemaConfig
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     2
# copy __permissions__ to avoid modifying a shared dictionary
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     3
in_group.__permissions__ = in_group.__permissions__.copy()
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     4
in_group.__permissions__['read'] = ('managers',)
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     5
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     6
cw_for_source = CWSourceSchemaConfig.get_relation('cw_for_source')
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     7
cw_for_source.__permissions__ = {'read': ('managers', 'users'),
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     8
                                 'add': ('managers',),
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     9
                                 'delete': ('managers',)}
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    10
41ec579e27c4 [test] test/demonstrate relation permissions overriding
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    11