Commit 3d6e4b46 by Matt Drayer

Merge pull request #29 from edx-solutions/mattdrayer/user_profile

UserList.post() now creates UserProfile, UserPreference records
parents 82cf41d6 e3de2c69
...@@ -7,7 +7,7 @@ from django.core.exceptions import ObjectDoesNotExist ...@@ -7,7 +7,7 @@ from django.core.exceptions import ObjectDoesNotExist
from django.db import IntegrityError from django.db import IntegrityError
from django.core.validators import validate_email, validate_slug, ValidationError from django.core.validators import validate_email, validate_slug, ValidationError
from django.conf import settings from django.conf import settings
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import get_language, ugettext_lazy as _
from rest_framework import status from rest_framework import status
from rest_framework.decorators import api_view, permission_classes from rest_framework.decorators import api_view, permission_classes
...@@ -19,7 +19,9 @@ from api_manager.permissions import ApiKeyHeaderPermission ...@@ -19,7 +19,9 @@ from api_manager.permissions import ApiKeyHeaderPermission
from courseware import module_render from courseware import module_render
from courseware.model_data import FieldDataCache from courseware.model_data import FieldDataCache
from courseware.views import get_module_for_descriptor, save_child_position, get_current_child from courseware.views import get_module_for_descriptor, save_child_position, get_current_child
from student.models import CourseEnrollment, PasswordHistory from lang_pref import LANGUAGE_KEY
from student.models import CourseEnrollment, PasswordHistory, UserProfile
from user_api.models import UserPreference
from xmodule.modulestore.django import modulestore from xmodule.modulestore.django import modulestore
from util.password_policy_validators import ( from util.password_policy_validators import (
validate_password_length, validate_password_complexity, validate_password_length, validate_password_complexity,
...@@ -129,6 +131,7 @@ class UsersList(APIView): ...@@ -129,6 +131,7 @@ class UsersList(APIView):
response_data['message'] = _('Username should only consist of A-Z and 0-9, with no spaces.') response_data['message'] = _('Username should only consist of A-Z and 0-9, with no spaces.')
return Response(response_data, status=status_code) return Response(response_data, status=status_code)
# Create the User, UserProfile, and UserPreference records
try: try:
user = User.objects.create(email=email, username=username) user = User.objects.create(email=email, username=username)
except IntegrityError: except IntegrityError:
...@@ -139,6 +142,12 @@ class UsersList(APIView): ...@@ -139,6 +142,12 @@ class UsersList(APIView):
user.last_name = last_name user.last_name = last_name
user.save() user.save()
profile = UserProfile(user=user)
profile.name = '{} {}'.format(first_name, last_name)
profile.save()
UserPreference.set_preference(user, LANGUAGE_KEY, get_language())
# add this account creation to password history # add this account creation to password history
# NOTE, this will be a NOP unless the feature has been turned on in configuration # NOTE, this will be a NOP unless the feature has been turned on in configuration
password_history_entry = PasswordHistory() password_history_entry = PasswordHistory()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment