Add a logs view for specific members of an organization

This commit is contained in:
Joseph Schorr 2013-12-06 19:25:27 -05:00
parent 59046b2e79
commit a0f9e1646a
7 changed files with 124 additions and 8 deletions

View file

@ -444,6 +444,35 @@ def get_organization_members(orgname):
abort(403)
@app.route('/api/organization/<orgname>/members/<membername>', methods=['GET'])
@api_login_required
def get_organization_member(orgname, membername):
permission = AdministerOrganizationPermission(orgname)
if permission.can():
try:
org = model.get_organization(orgname)
except model.InvalidOrganizationException:
abort(404)
member_dict = None
member_teams = model.get_organization_members_with_teams(org, membername = membername)
for member in member_teams:
if not member_dict:
member_dict = {'username': member.user.username,
'is_robot': member.user.robot,
'teams': []}
member_dict['teams'].append(member.team.name)
if not member_dict:
abort(404)
return jsonify({'member': member_dict})
abort(403)
@app.route('/api/organization/<orgname>/private', methods=['GET'])
@api_login_required
def get_organization_private_allowed(orgname):
@ -1727,8 +1756,13 @@ def log_view(log):
def org_logs_api(orgname):
permission = AdministerOrganizationPermission(orgname)
if permission.can():
performer_name = request.args.get('performer', None)
performer = None
if performer_name:
performer = model.get_user(performer_name)
week_ago = datetime.today() - timedelta(7) # One week
logs = model.list_logs(orgname, week_ago)
logs = model.list_logs(orgname, week_ago, performer = performer)
return jsonify({
'start_time': week_ago,
'logs': [log_view(log) for log in logs]