Skip to content

Commit ec4e238

Browse files
committed
Added some missing files.
- Legacy-Id: 14427
1 parent e7209c6 commit ec4e238

3 files changed

Lines changed: 51 additions & 0 deletions

File tree

ietf/ietfauth/management/__init__.py

Whitespace-only changes.

ietf/ietfauth/management/commands/__init__.py

Whitespace-only changes.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# -*- coding: utf-8 -*-
2+
# Copyright The IETF Trust 2017, All Rights Reserved
3+
from __future__ import print_function, unicode_literals
4+
5+
import datetime
6+
7+
from textwrap import dedent
8+
9+
from django.conf import settings
10+
from django.core.management.base import BaseCommand
11+
12+
import debug # pyflakes:ignore
13+
14+
from ietf.person.models import PersonalApiKey, PersonApiKeyEvent
15+
from ietf.utils.mail import send_mail
16+
17+
18+
class Command(BaseCommand):
19+
"""
20+
Send out emails to all persons who have personal API keys about usage.
21+
22+
Usage is show over the given period, where the default period is 7 days.
23+
"""
24+
25+
help = dedent(__doc__).strip()
26+
27+
def add_arguments(self, parser):
28+
parser.add_argument('-d', '--days', dest='days', type=int, default=7,
29+
help='The period over which to show usage.')
30+
31+
def handle(self, *filenames, **options):
32+
"""
33+
"""
34+
35+
self.verbosity = int(options.get('verbosity'))
36+
days = options.get('days')
37+
38+
keys = PersonalApiKey.objects.filter(valid=True)
39+
for key in keys:
40+
earliest = datetime.datetime.now() - datetime.timedelta(days=days)
41+
events = PersonApiKeyEvent.objects.filter(key=key, time__gt=earliest)
42+
count = events.count()
43+
events = events[:32]
44+
if count:
45+
key_name = key.hash()[:8]
46+
subject = "API key usage for key '%s' for the last %s days" %(key_name, days)
47+
to = key.person.email_address()
48+
frm = settings.DEFAULT_FROM_EMAIL
49+
send_mail(None, to, frm, subject, 'utils/apikey_usage_report.txt', {'person':key.person,
50+
'days':days, 'key':key, 'key_name':key_name, 'count':count, 'events':events, } )
51+

0 commit comments

Comments
 (0)