def activate(request, userid): if request.method == 'POST': if hashlib.md5(request.POST['pw']).hexdigest() == settings.MASTER_PASSWORD: try: pendinguser = PendingUsers.objects.get(pk=int(userid)) except: return HttpResponseNotFound("No such user", content_type="text/plain") clamuser = CLAMUsers(username=pendinguser.username, password=pendinguser.password,fullname=pendinguser.fullname, institution=pendinguser.institution, mail=pendinguser.mail,active=True) try: clamuser.save() except IntegrityError: return HttpResponseForbidden("User is already activated", content_type="text/plain") send_mail('Webservice account on ' + settings.DOMAIN , 'Dear ' + clamuser.fullname + '\n\nYour webservice account on ' + settings.DOMAIN + ' has been reviewed and activated.\n\n(this is an automated message)', settings.FROMMAIL, [clamuser.mail] + [ x[1] for x in settings.ADMINS ] , fail_silently=False) return HttpResponse("Succesfully activated", content_type="text/plain") else: return HttpResponseForbidden("Invalid password, not activated", content_type="text/plain") else: try: pendinguser = PendingUsers.objects.get(pk=int(userid)) except: return HttpResponseNotFound("No such pending user, has probably already been activated", content_type="text/plain") c = RequestContext(request) c.update(csrf(request)) return render_to_response('activate.html',{'userid': userid},context_instance=c)
def register(request): if request.method == 'POST': # If the form has been submitted... form = RegisterForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass try: clamuser = form.save() except IntegrityError: return HttpResponseForbidden( "That username is already registered (1)", content_type="text/plain") if autoactivate(clamuser): clamuser = CLAMUsers(username=clamuser.username, password=clamuser.password, fullname=clamuser.fullname, institution=clamuser.institution, mail=clamuser.mail, active=True) try: clamuser.save() except IntegrityError: return HttpResponseForbidden( "That username is already registered (2)", content_type="text/plain") send_mail( '[' + settings.DOMAIN + '] Registration request from ' + clamuser.username + ' automatically approved', 'The following new account has been automatically approved, no further action is required:\n\nUsername: '******'\nFull name: ' + clamuser.fullname + '\nInstitution: ' + clamuser.institution + '\nMail: ' + clamuser.mail + '\n\n', settings.FROMMAIL, [x[1] for x in settings.ADMINS], fail_silently=False) return render_to_response('activated.html') else: send_mail( '[' + settings.DOMAIN + '] Registration request from ' + clamuser.username + ' pending approval', 'The following new account is pending approval:\n\nUsername: '******'\nFull name: ' + clamuser.fullname + '\nInstitution: ' + clamuser.institution + '\nMail: ' + clamuser.mail + '\n\nTo approve this user go to: ' + settings.BASEURL + 'activate/' + str(clamuser.pk), settings.FROMMAIL, [x[1] for x in settings.ADMINS], fail_silently=False) return render_to_response('submitted.html') else: return HttpResponseForbidden( "One or more entered fields were not valid, please go back and try again", content_type="text/plain") else: form = RegisterForm() # An unbound form return render(request, 'register.html', {'form': form})
def activate(request, userid): if request.method == 'POST': if hashlib.md5(request.POST['pw'].encode( 'utf-8')).hexdigest() == settings.MASTER_PASSWORD: try: pendinguser = PendingUsers.objects.get(pk=int(userid)) except: return HttpResponseNotFound("No such user", content_type="text/plain") clamuser = CLAMUsers(username=pendinguser.username, password=pendinguser.password, fullname=pendinguser.fullname, institution=pendinguser.institution, mail=pendinguser.mail, active=True) try: clamuser.save() except IntegrityError: return HttpResponseForbidden("User is already activated", content_type="text/plain") send_mail( 'Webservice account on ' + settings.DOMAIN, 'Dear ' + clamuser.fullname + '\n\nYour webservice account on ' + settings.DOMAIN + ' has been reviewed and activated.\n\n(this is an automated message)', settings.FROMMAIL, [clamuser.mail] + [x[1] for x in settings.ADMINS], fail_silently=False) return HttpResponse("Succesfully activated", content_type="text/plain") else: return HttpResponseForbidden("Invalid password, not activated", content_type="text/plain") else: try: pendinguser = PendingUsers.objects.get(pk=int(userid)) except: return HttpResponseNotFound( "No such pending user, has probably already been activated", content_type="text/plain") return render(request, 'activate.html', {'userid': userid})
def register(request): if request.method == 'POST': # If the form has been submitted... form = RegisterForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass try: clamuser = form.save() except IntegrityError: return HttpResponseForbidden("That username is already registered (1)", content_type="text/plain") if autoactivate(clamuser): clamuser = CLAMUsers(username=clamuser.username, password=clamuser.password,fullname=clamuser.fullname, institution=clamuser.institution, mail=clamuser.mail,active=True) try: clamuser.save() except IntegrityError: return HttpResponseForbidden("That username is already registered (2)", content_type="text/plain") send_mail('[' + settings.DOMAIN + '] Registration request from ' + clamuser.username + ' automatically approved' , 'The following new account has been automatically approved, no further action is required:\n\nUsername: '******'\nFull name: ' +clamuser.fullname + '\nInstitution: ' + clamuser.institution + '\nMail: ' + clamuser.mail + '\n\n', settings.FROMMAIL, [ x[1] for x in settings.ADMINS ] , fail_silently=False) return render_to_response('activated.html') else: send_mail('[' + settings.DOMAIN + '] Registration request from ' + clamuser.username + ' pending approval' , 'The following new account is pending approval:\n\nUsername: '******'\nFull name: ' +clamuser.fullname + '\nInstitution: ' + clamuser.institution + '\nMail: ' + clamuser.mail + '\n\nTo approve this user go to: ' + settings.BASEURL + 'activate/' + str(clamuser.pk), settings.FROMMAIL, [ x[1] for x in settings.ADMINS ] , fail_silently=False) return render_to_response('submitted.html') else: c = RequestContext(request) c.update(csrf(request)) form = RegisterForm() # An unbound form return render_to_response('register.html', {'form': form},context_instance=c)