diff -r 94cc7cad3d2d -r b9436fe77c9e server/schemaserial.py --- a/server/schemaserial.py Thu Dec 03 17:17:43 2009 +0100 +++ b/server/schemaserial.py Mon Dec 07 05:09:09 2009 -0800 @@ -183,7 +183,6 @@ fulltext_container=ft_container, eid=eid) rschema = schema.add_relation_type(rtype) index[eid] = rschema - set_perms(rschema, permsdict.get(eid, {})) cstrsdict = deserialize_rdef_constraints(session) for values in session.execute( 'Any X,SE,RT,OE,CARD,ORD,DESC,IDX,FTIDX,I18N,DFLT WHERE X is CWAttribute,' @@ -202,7 +201,8 @@ indexed=idx, fulltextindexed=ftidx, internationalizable=i18n, default=default, eid=rdefeid) - schema.add_relation_def(rdef) + rdefs = schema.add_relation_def(rdef) + set_perms(rdefs, permsdict.get(rdefeid, {})) for values in session.execute( 'Any X,SE,RT,OE,CARD,ORD,DESC,C WHERE X is CWRelation, X relation_type RT,' 'X cardinality CARD, X ordernum ORD, X description DESC, ' @@ -216,7 +216,8 @@ order=ord, description=desc, composite=c, constraints=constraints, eid=rdefeid) - schema.add_relation_def(rdef) + rdefs = schema.add_relation_def(rdef) + set_perms(rdefs, permsdict.get(rdefeid, {})) schema.infer_specialization_rules() if _3_2_migration: _update_database(schema, sqlcu) @@ -363,7 +364,7 @@ amap = {'order': 'ordernum'} values = {} for prop, default in rschema.rproperty_defs(objtype).iteritems(): - if prop in ('eid', 'constraints', 'uid', 'infered'): + if prop in ('eid', 'constraints', 'uid', 'infered', 'permissions'): continue value = props.get(prop, default) if prop in ('indexed', 'fulltextindexed', 'internationalizable'): @@ -536,7 +537,7 @@ else: # entity schema for rql, args in _erperms2rql(erschema, groupmapping): - args['name'] = str(eschema) + args['name'] = str(erschema) yield rql + 'X is CWEType, X name %(name)s', args def _erperms2rql(erschema, groupmapping): @@ -550,7 +551,7 @@ if isinstance(group_or_rqlexpr, basestring): # group try: - yield ('SET X %s_permission Y WHERE Y eid %%(g)s' % action, + yield ('SET X %s_permission Y WHERE Y eid %%(g)s, ' % action, {'g': groupmapping[group_or_rqlexpr]}) except KeyError: continue