617 for k in chain(fetch_attrs, query_attrs): |
617 for k in chain(fetch_attrs, query_attrs): |
618 if k not in cwuserattrs: |
618 if k not in cwuserattrs: |
619 raise Exception('bad input for find_user') |
619 raise Exception('bad input for find_user') |
620 with self.internal_cnx() as cnx: |
620 with self.internal_cnx() as cnx: |
621 varmaker = rqlvar_maker() |
621 varmaker = rqlvar_maker() |
622 vars = [(attr, varmaker.next()) for attr in fetch_attrs] |
622 vars = [(attr, next(varmaker)) for attr in fetch_attrs] |
623 rql = 'Any %s WHERE X is CWUser, ' % ','.join(var[1] for var in vars) |
623 rql = 'Any %s WHERE X is CWUser, ' % ','.join(var[1] for var in vars) |
624 rql += ','.join('X %s %s' % (var[0], var[1]) for var in vars) + ',' |
624 rql += ','.join('X %s %s' % (var[0], var[1]) for var in vars) + ',' |
625 rset = cnx.execute(rql + ','.join('X %s %%(%s)s' % (attr, attr) |
625 rset = cnx.execute(rql + ','.join('X %s %%(%s)s' % (attr, attr) |
626 for attr in query_attrs), |
626 for attr in query_attrs), |
627 query_attrs) |
627 query_attrs) |