Skip to content
Snippets Groups Projects
Commit 6a46535e authored by Harsha Kethineni's avatar Harsha Kethineni Committed by GitHub
Browse files

Merge pull request #936 from scitran/accesslog-projects

Access log query project filter added
parents d014e7cc dfa62d7d
No related branches found
No related tags found
No related merge requests found
......@@ -505,6 +505,7 @@ class AccessLogReport(Report):
uid = params.get('user')
limit= params.get('limit', 100)
subject = params.get('subject', None)
project = params.get('project', None)
access_types = params.getall('access_type')
if start_date:
......@@ -532,6 +533,7 @@ class AccessLogReport(Report):
self.uid = uid
self.limit = limit
self.subject = subject
self.project = project
self.access_types = access_types
def user_can_generate(self, uid):
......@@ -555,6 +557,8 @@ class AccessLogReport(Report):
query['timestamp']['$lte'] = self.end_date
if self.subject:
query['context.subject.label'] = self.subject
if self.project:
query['context.project.id'] = self.project
if self.access_types:
query['access_type'] = {'$in': self.access_types}
......
......@@ -22,6 +22,7 @@ ARG_TO_PARAMS= {
'e': 'end_date',
'u': 'uid',
'j': 'subject',
'p': 'project',
't': 'access_types'
}
......@@ -71,6 +72,7 @@ if __name__ == '__main__':
parser.add_argument("-u", help="User id", type=str)
parser.add_argument("-l", help="Limit", type=str)
parser.add_argument("-j", help="subJect", type=str)
parser.add_argument("-p", help="project", type=str)
parser.add_argument("-t", help="list of access Types", type=str, nargs='+')
args = vars(parser.parse_args())
......
......@@ -185,6 +185,27 @@ def test_access_log_report(data_builder, with_user, as_user, as_admin):
r = as_admin.get('/report/accesslog', params={'csv': 'true'})
assert r.ok
# Create new project with same subject name
project2 = data_builder.create_project()
r = as_admin.post('/sessions', json={
'project': project2,
'label': 'test-accesslog-session-2',
'timestamp': '1979-01-01T00:00:00+00:00',
'subject': {'code': 'compliant5'}
})
assert r.ok
session2 = r.json()['_id']
r = as_admin.delete('/sessions/' + session2)
data_builder.delete_project(project2, recursive=True)
# get access log report project filter
r = as_admin.get('/report/accesslog', params={'project':project2, 'subject': 'compliant5'})
assert r.ok
for log in r.json():
assert log.get('context',{}).get('session',{}).get('label') != 'test-accesslog-session'
r.content[0][:3] == '_id'
# get the access types
......
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