189 plan.preprocess(plan.rqlst) |
189 plan.preprocess(plan.rqlst) |
190 rqlst = plan.rqlst.children[0] |
190 rqlst = plan.rqlst.children[0] |
191 rqlst.solutions = remove_unused_solutions(rqlst, rqlst.solutions, {}, self.repo.schema)[0] |
191 rqlst.solutions = remove_unused_solutions(rqlst, rqlst.solutions, {}, self.repo.schema)[0] |
192 return rqlst |
192 return rqlst |
193 |
193 |
194 def _user_session(self, groups=('guests',), ueid=None): |
194 def user_groups_session(self, *groups): |
|
195 """lightweight session using the current user with hi-jacked groups""" |
195 # use self.session.user.eid to get correct owned_by relation, unless explicit eid |
196 # use self.session.user.eid to get correct owned_by relation, unless explicit eid |
196 if ueid is None: |
197 u = self.repo._build_user(self.session, self.session.user.eid) |
197 ueid = self.session.user.eid |
|
198 u = self.repo._build_user(self.session, ueid) |
|
199 u._groups = set(groups) |
198 u._groups = set(groups) |
200 s = Session(u, self.repo) |
199 s = Session(u, self.repo) |
201 s._threaddata.pool = self.pool |
200 s._threaddata.pool = self.pool |
202 return u, s |
201 return s |
203 |
202 |
204 def execute(self, rql, args=None, eid_key=None, build_descr=True): |
203 def execute(self, rql, args=None, eid_key=None, build_descr=True): |
205 return self.o.execute(self.session, rql, args, eid_key, build_descr) |
204 return self.o.execute(self.session, rql, args, eid_key, build_descr) |
206 |
205 |
207 def commit(self): |
206 def commit(self): |