Add a logs view for specific members of an organization
This commit is contained in:
parent
59046b2e79
commit
a0f9e1646a
7 changed files with 124 additions and 8 deletions
|
@ -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]
|
||||
|
|
Reference in a new issue