Skip to content
Snippets Groups Projects
Commit a7629df5 authored by Megan Henning's avatar Megan Henning Committed by GitHub
Browse files

Merge pull request #348 from scitran/search-return-perms

Return user's permissions with search result
parents 16db8d6a a9787ccd
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ import elasticsearch
from .. import base
from .. import config
from .. import util
from ..search import pathparser, queryprocessor, es_query
log = config.log
......@@ -97,13 +98,15 @@ class SearchHandler(base.RequestHandler):
container_name = result_type
result['_source'].update(self._get_parents(container, container_name))
def _strip_other_permissions(self, container, cont_name):
perm_list = container.pop('roles', None) if cont_name == 'groups' else container.pop('permissions', None)
if perm_list:
p = util.user_perm(perm_list, self.uid, self.user_site)
container['user_permissions'] = p.get('access', None) if p else None
def _get_parents(self, container, cont_name):
parents = {}
if cont_name == 'groups':
container.pop('roles', None)
else:
container.pop('permissions', None)
self._strip_other_permissions(container, cont_name)
if parent_container_dict.get(cont_name):
parent_name = parent_container_dict[cont_name]
parent_id = container[parent_name[:-1]]
......@@ -112,7 +115,6 @@ class SearchHandler(base.RequestHandler):
parents.update(self._get_parents(parent_container, parent_name))
return parents
def get_datatree(self, **kwargs):
if self.public_request:
self.abort(403, 'search is available only for authenticated users')
......@@ -153,10 +155,7 @@ class SearchHandler(base.RequestHandler):
if parent_cont_name != 'groups':
parent_id = bson.objectid.ObjectId(parent_id)
container = config.db[parent_cont_name].find_one({'_id': parent_id})
if parent_cont_name == 'groups':
container.pop('roles', None)
else:
container.pop('permissions', None)
self._strip_other_permissions(container, parent_cont_name)
result[parent_cont_name[:-1]] = container
cont_name = parent_cont_name
if collection:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment