|
a/Allura/allura/model/auth.py |
|
b/Allura/allura/model/auth.py |
|
... |
|
... |
579 |
|
579 |
|
580 |
def parent_roles(self):
|
580 |
def parent_roles(self):
|
581 |
return self.query.find({'roles': self._id}).all()
|
581 |
return self.query.find({'roles': self._id}).all()
|
582 |
|
582 |
|
583 |
def child_roles(self):
|
583 |
def child_roles(self):
|
584 |
return self.query.find({'_id': {'$in':self.roles}}).all()
|
584 |
to_check = []+self.roles
|
|
|
585 |
found_roles = []
|
|
|
586 |
while to_check:
|
|
|
587 |
checking = to_check.pop()
|
|
|
588 |
for role in self.query.find({'_id': checking}).all():
|
|
|
589 |
if role not in found_roles:
|
|
|
590 |
found_roles.append(role)
|
|
|
591 |
to_check=to_check+role.roles
|
|
|
592 |
return found_roles
|
585 |
|
593 |
|
586 |
def users_with_role(self, project=None):
|
594 |
def users_with_role(self, project=None):
|
587 |
if not project:
|
595 |
if not project:
|
588 |
project = c.project
|
596 |
project = c.project
|
589 |
return self.query.find(dict(project_id=project._id,
|
597 |
return self.query.find(dict(project_id=project._id,
|