Skip to content

Instantly share code, notes, and snippets.

Created September 22, 2015 07:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/875d35faf9c8eb3ffa84 to your computer and use it in GitHub Desktop.
Save anonymous/875d35faf9c8eb3ffa84 to your computer and use it in GitHub Desktop.
A Django view to create new user from custom view
@user_passes_test(lambda u: u.is_superuser)
def user_add(request):
if request.POST:
username = request.POST.get('username', None)
email = request.POST.get('email', None)
initial_pwd = User.objects.make_random_password()
# create user object
if username and email:
user = User.objects.create_user(username=username,
email=email,
password=initial_pwd)
user.save()
else:
return HttpResponse("Failed to create new user: username and email are required fields.")
# send email via sendcloud
import requests
url = "http://sendcloud.sohu.com/webapi/mail.send.json"
params = {
"api_user": settings.SENDCLOUD['API_USER'],
"api_key" : settings.SENDCLOUD['API_KEY'],
"to" : email,
"from" : settings.SENDCLOUD['SENDER_ID'],
"fromname" : "No-Reply",
"html" : get_template('pages/email_new_user_notification.txt').render(
Context({
'email': email,
'pass': initial_pwd,
})
),
"subject": "Your *** account has been created",
"resp_email_id": "true",
}
r = requests.post(url, data=params)
# redirect to user list
return HttpResponseRedirect("/admin/auth/user")
return render_to_response("pages/forms_add_user.html", {
'site_name': settings.SITE_NAME,
}, context_instance=RequestContext(request))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment