|
a/Allura/allura/lib/security.py |
|
b/Allura/allura/lib/security.py |
|
... |
|
... |
144 |
while to_visit:
|
144 |
while to_visit:
|
145 |
(rid, role) = to_visit.pop()
|
145 |
(rid, role) = to_visit.pop()
|
146 |
if rid in visited: continue
|
146 |
if rid in visited: continue
|
147 |
yield role
|
147 |
yield role
|
148 |
pr_index = self.cred.project_roles(role.project_id).index
|
148 |
pr_index = self.cred.project_roles(role.project_id).index
|
149 |
to_visit += [
|
|
|
150 |
(i, pr_index[i]) for i in pr_index[rid].roles ]
|
149 |
for i in pr_index[rid].roles:
|
|
|
150 |
if i in pr_index:
|
|
|
151 |
to_visit.append((i, pr_index[i]))
|
151 |
return RoleCache(self.cred, _iter())
|
152 |
return RoleCache(self.cred, _iter())
|
152 |
|
153 |
|
153 |
@LazyProperty
|
154 |
@LazyProperty
|
154 |
def reaching_ids(self):
|
155 |
def reaching_ids(self):
|
155 |
return [ r._id for r in self.reaching_roles ]
|
156 |
return [ r._id for r in self.reaching_roles ]
|
|
... |
|
... |
215 |
|
216 |
|
216 |
def require_authenticated():
|
217 |
def require_authenticated():
|
217 |
from allura import model as M
|
218 |
from allura import model as M
|
218 |
if c.user == M.User.anonymous():
|
219 |
if c.user == M.User.anonymous():
|
219 |
raise exc.HTTPUnauthorized()
|
220 |
raise exc.HTTPUnauthorized()
|
220 |
|
|
|