misc/migration/bootstrapmigration_repository.py
changeset 4835 13b0b96d7982
parent 4834 b718626a0e60
child 4843 5f7363416765
equal deleted inserted replaced
4834:b718626a0e60 4835:13b0b96d7982
    18     commit(ask_confirm=False)
    18     commit(ask_confirm=False)
    19 
    19 
    20 if applcubicwebversion == (3, 6, 0) and cubicwebversion >= (3, 6, 0):
    20 if applcubicwebversion == (3, 6, 0) and cubicwebversion >= (3, 6, 0):
    21     _add_relation_definition_no_perms('CWAttribute', 'update_permission', 'CWGroup')
    21     _add_relation_definition_no_perms('CWAttribute', 'update_permission', 'CWGroup')
    22     _add_relation_definition_no_perms('CWAttribute', 'update_permission', 'RQLExpression')
    22     _add_relation_definition_no_perms('CWAttribute', 'update_permission', 'RQLExpression')
    23     session.set_pool()
    23     rql('SET X update_permission Y WHERE X is CWAttribute, X add_permission Y')
    24     session.unsafe_execute('SET X update_permission Y WHERE X is CWAttribute, X add_permission Y')
       
    25     drop_relation_definition('CWAttribute', 'add_permission', 'CWGroup')
    24     drop_relation_definition('CWAttribute', 'add_permission', 'CWGroup')
    26     drop_relation_definition('CWAttribute', 'add_permission', 'RQLExpression')
    25     drop_relation_definition('CWAttribute', 'add_permission', 'RQLExpression')
    27     drop_relation_definition('CWAttribute', 'delete_permission', 'CWGroup')
    26     drop_relation_definition('CWAttribute', 'delete_permission', 'CWGroup')
    28     drop_relation_definition('CWAttribute', 'delete_permission', 'RQLExpression')
    27     drop_relation_definition('CWAttribute', 'delete_permission', 'RQLExpression')
    29 
    28 
    30 elif applcubicwebversion < (3, 6, 0) and cubicwebversion >= (3, 6, 0):
    29 elif applcubicwebversion < (3, 6, 0) and cubicwebversion >= (3, 6, 0):
    31     session.set_pool()
    30     session.set_pool()
    32     session.execute = session.unsafe_execute
       
    33     permsdict = ss.deserialize_ertype_permissions(session)
    31     permsdict = ss.deserialize_ertype_permissions(session)
    34 
    32 
    35     changes = session.disable_hooks_category.add('integrity')
    33     changes = session.disable_hooks_category.add('integrity')
    36     for rschema in repo.schema.relations():
    34     for rschema in repo.schema.relations():
    37         rpermsdict = permsdict.get(rschema.eid, {})
    35         rpermsdict = permsdict.get(rschema.eid, {})
    79 
    77 
    80     session.set_shared_data('do-not-insert-cwuri', True)
    78     session.set_shared_data('do-not-insert-cwuri', True)
    81     deactivate_verification_hooks()
    79     deactivate_verification_hooks()
    82     add_relation_type('cwuri')
    80     add_relation_type('cwuri')
    83     base_url = session.base_url()
    81     base_url = session.base_url()
    84     # use an internal session since some entity might forbid modifications to admin
       
    85     isession = repo.internal_session()
       
    86     for eid, in rql('Any X', ask_confirm=False):
    82     for eid, in rql('Any X', ask_confirm=False):
    87         type, source, extid = session.describe(eid)
    83         type, source, extid = session.describe(eid)
    88         if source == 'system':
    84         if source == 'system':
    89             isession.execute('SET X cwuri %(u)s WHERE X eid %(x)s',
    85             rql('SET X cwuri %(u)s WHERE X eid %(x)s',
    90                              {'x': eid, 'u': base_url + u'eid/%s' % eid})
    86                 {'x': eid, 'u': base_url + u'eid/%s' % eid})
    91     isession.commit()
    87     isession.commit()
    92     reactivate_verification_hooks()
    88     reactivate_verification_hooks()
    93     session.set_shared_data('do-not-insert-cwuri', False)
    89     session.set_shared_data('do-not-insert-cwuri', False)
    94 
    90 
    95 if applcubicwebversion < (3, 5, 0) and cubicwebversion >= (3, 5, 0):
    91 if applcubicwebversion < (3, 5, 0) and cubicwebversion >= (3, 5, 0):