Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 27 additions & 22 deletions common/djangoapps/student/management/commands/create_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from student.models import CourseEnrollment, Registration
from student.views import _do_create_account
from django.contrib.auth.models import User
from eventtracking import tracker


class Command(BaseCommand):
Expand Down Expand Up @@ -64,25 +65,29 @@ def handle(self, *args, **options):
if not name:
name = options['email'].split('@')[0]

post_data = {
'username': username,
'email': options['email'],
'password': options['password'],
'name': name,
'honor_code': u'true',
'terms_of_service': u'true',
}
create_account = _do_create_account(post_data)
if isinstance(create_account, tuple):
user = create_account[0]
if options['staff']:
user.is_staff = True
user.save()
reg = Registration.objects.get(user=user)
reg.activate()
reg.save()
else:
print create_account
user = User.objects.get(email=options['email'])
if options['course']:
CourseEnrollment.enroll(user, options['course'], mode=options['mode'])
CONTEXT_NAME = 'edx.mgmt.command'
context = {'command': 'create_user'}
with tracker.get_tracker().context(CONTEXT_NAME, context):

post_data = {
'username': username,
'email': options['email'],
'password': options['password'],
'name': name,
'honor_code': u'true',
'terms_of_service': u'true',
}
create_account = _do_create_account(post_data)
if isinstance(create_account, tuple):
user = create_account[0]
if options['staff']:
user.is_staff = True
user.save()
reg = Registration.objects.get(user=user)
reg.activate()
reg.save()
else:
print create_account
user = User.objects.get(email=options['email'])
if options['course']:
CourseEnrollment.enroll(user, options['course'], mode=options['mode'])
44 changes: 31 additions & 13 deletions common/djangoapps/track/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,31 +68,49 @@ def user_track(request):


def server_track(request, event_type, event, page=None):
"""Log events related to server requests."""
try:
username = request.user.username
except:
username = "anonymous"

try:
agent = request.META['HTTP_USER_AGENT']
except:
agent = ''
"""
Log events related to server requests.

Handle the situation where the request may be NULL, as may happen with management commands.
"""
username = 'anonymous'
agent = ''
host = ''
ip = ''
if request is not None:
try:
username = request.user.username
except:
pass
if hasattr(request, META):
try:
agent = request.META['HTTP_USER_AGENT']
except:
pass
try:
host = request.META['SERVER_NAME']
except:
pass
try:
ip = request.META['REMOTE_ADDR']
except:
pass

# define output:
event = {
"username": username,
"ip": request.META['REMOTE_ADDR'],
"ip": ip,
"event_source": "server",
"event_type": event_type,
"event": event,
"agent": agent,
"page": page,
"time": datetime.datetime.now(UTC),
"host": request.META['SERVER_NAME'],
"host": host,
"context": eventtracker.get_tracker().resolve_context(),
}

if event_type.startswith("/event_logs") and request.user.is_staff:
if event_type.startswith("/event_logs") and request and request.user.is_staff:
return # don't log

log_event(event)
Expand Down