def save(self): """Creando usuario y pefil""" data = self.cleaned_data cedula = self.cleaned_data['cedula'] data.pop('password_confirmation') data.pop('cedula') user = User.objects.create_user(**data) # Aqui estamos desplegando el objeto completo conexion = Conectado() conexion.save() profile = Perfil(usuario=user, conexion=conexion, cedula=cedula) profile.save() send_mail(ASUNTO, MENSAJE, EMAIL, [self.cleaned_data['email']], fail_silently=False)
def createUser(request): usuario = request.POST.get('user', 0) password = request.POST.get('password', 0) mail = request.POST.get('mail', 0) if usuario and password and mail: if User.objects.filter(email = mail): return render(request, 'autenticacion/errorview.html', { 'mensaje': 'Este usuario ya existe'}) try: user = User.objects.create_user(usuario, mail, password) user.save() except : return render(request, 'autenticacion/errorview.html', { 'mensaje': 'Este usuario ya existe'}) try: sendMail(mail, 'Usuario Registrado', 'Su usuario ' + usuario+ 'ha sido creado con exito.') except: return render(request, 'autenticacion/errorview.html', { 'mensaje': 'Problema al enviar correo'}) try: u = User.objects.filter(username = usuario) #return HttpResponse(u[0].email) p = Perfil() p.user = user p.save() except: return render(request, 'autenticacion/errorview.html', { 'mensaje': 'Problema al crear perfil'}) request.session['autenticado'] = 1 user = authenticate(username=usuario, password=password) login(request, user) posibleReferido = PosibleReferido.objects.filter(correo = request.user.email ) if (len(posibleReferido)): p_auspiciador = posibleReferido[0].auspiciador posibleReferido[0].estado = True posibleReferido[0].save() return render (request, 'main/principalview.html', { 'p_auspiciador': p_auspiciador }) return render (request, 'main/principalview.html') else: request.session['error'] = 'Formulario Invalido' return redirect('/login/error/')
def registrar_usuario(request, verificador): perfil_pendiente =\ get_object_or_404(PerfilPendiente, verificador=verificador) plantilla = u'usuario/registrar_usuario.html' exito = u'usuario/registrar_usuario_exito.html' if request.method == u'POST': formulario = CrearPerfil(request.POST) if formulario.is_valid(): datos = formulario.cleaned_data # TODO: Cambiar el formulario o el método clean o save del # del formulario para que no haya que hacer esto. usuario = User.objects.create_user(datos[u'cedula'], perfil_pendiente.correo, datos[u'clave']) usuario.first_name = datos[u'nombres'] usuario.last_name = datos[u'apellidos'] usuario.is_active = perfil_pendiente.activo usuario.save() perfil = Perfil(usuario=usuario, carne=datos[u'carne'], telefono_principal=\ datos[u'telefono_principal'], telefono_opcional=\ datos[u'telefono_opcional'], zona=datos[u'zona'], coordinador_interino=\ perfil_pendiente.coordinador, limitaciones_fisicas=\ datos[u'limitaciones_fisicas'], limitaciones_medicas=\ datos[u'limitaciones_medicas'], carrera=datos[u'carrera']) perfil.save() # Se intenta enviar un correo a la persona. try: enviar_correo_usuario(perfil, perfil.usuario.email) except Exception as e: perfil.delete() usuario.delete() error = u'No se pudo agregar el usuario en este momento. Por '\ u'favor intente luego nuevamente.' formulario = agregar_error_formulario(formulario, error) return render_to_response(plantilla, {u'formulario': formulario}, context_instance= RequestContext(request)) perfil_pendiente.delete() usuario = authenticate(username=datos[u'cedula'], password=datos[u'clave']) login(request, usuario) return HttpResponseRedirect(reverse(u'inicio')) else: formulario = CrearPerfil() return render_to_response(plantilla, {u'formulario': formulario}, context_instance=RequestContext(request))
def Cadastrar(request): #Verifica se já existe uma conta de user com o username passado no formulário verifica_username = User.objects.filter(username = request.POST['username'].lower().strip()).exists() verifica_email = User.objects.filter(email = request.POST['email'].lower().strip()) flag = False tentativa_de_cadastro = { 'nome':'', 'sobrenome': '', 'usuario': '', 'email':'', 'telefone':'', 'flag': False } #Se existir o context ira repassar uma mensagem de erro e impedir a tentativa de criar um user com username já cadastrado if verifica_username: tentativa_de_cadastro['email'] = request.POST['email'].lower().strip() tentativa_de_cadastro['usuario'] = request.POST['username'].lower().strip() messages.add_message(request, messages.ERROR, 'Usuário já existente') flag = True if verifica_email: tentativa_de_cadastro['email'] = request.POST['email'].lower().strip() tentativa_de_cadastro['usuario'] = request.POST['username'].lower().strip() if not flag: messages.add_message(request, messages.ERROR, 'Email já cadastrado') flag = True #Se não existir um novo user será criado else: #Recebe as informações mais básicas do usuário, todas obrigatorias first_name = request.POST.get('first_name', False).strip() last_name = request.POST.get('last_name', False).strip() email = request.POST.get('email', False).strip().lower() username = request.POST.get('username', False).strip().lower() password = request.POST.get('password', False).strip() tentativa_de_cadastro['nome'] = request.POST['first_name'].strip() tentativa_de_cadastro['sobrenome'] = request.POST['last_name'].strip() #Se algumas delas estiver em branco, o cadastro será impedido #Cria a entidade perfil perfil = Perfil() #Recebe o atributo sexo, tambem obrigatorio sexo = request.POST.get('sexo', False) #Se estiver em branco o cadastro é cancelado if sexo: #Caso não seja, o mesmo é atribuido a entidade perfil perfil.sexo = int(sexo) else: if not flag: messages.add_message(request, messages.WARNING, 'Por Favor preencha todos os campos') if request.FILES: perfil.foto = request.FILES["foto"] else: #Se não tiver sido enviada uma foto padrão eh salva no lugar if not flag: media_root = settings.MEDIA_ROOT media_root = os.path.join(media_root, "images", "user") file_name = "{}.png".format(username) path = os.path.join(media_root, file_name) urllib.request.urlretrieve('https://n8d.at/wp-content/plugins/aioseop-pro-2.4.11.1/images/default-user-image.png', path) perfil.foto="images/user/{}".format(file_name) #Recebe o atributo relacionado ao numero de telefone telefone_numero = request.POST.get('telefone', '').strip() telefone_numero = telefone_numero.replace('(', '').replace(')','').replace(' ', '').replace('-', '') #Verifica se o atributo é vazio, se for o telefone não é criado if telefone_numero: #Cria a entidade telefone telefone = Telefone() telefone.numero = telefone_numero tentativa_de_cadastro['telefone'] = telefone_numero #Salva o telefone criado if not flag: telefone.save() #Associa o telefone ao perfil perfil.telefone = telefone if not flag: #Recebe os atributos relacionados ao endereço cep = request.POST.get('cep', '').strip() rua = request.POST.get('rua', '').strip() numero = request.POST.get('numero', '').strip() bairro = request.POST.get('bairro', '').strip() cidade = request.POST.get('cidade', '').strip() estado = request.POST.get('estado', '').strip() #Verifica se algum dos atributos é vazio, se for o endereço não é criado if cep and rua and numero and bairro and cidade and estado and not flag: #Cria a entidade endereço endereco = Endereco() endereco.cep = cep endereco.rua = rua endereco.numero = numero endereco.bairro = bairro endereco.cidade = cidade endereco.estado = estado #Salva o endereço criado endereco.save() #Associa o endereco ao perfil perfil.endereco = endereco #Caso tudo corra bem, salva as entidades obrigatorias e suas associações #Salva a entidade user if first_name and last_name and email and username and password: #Cria a entidade user user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name else: if not flag: messages.add_message(request, messages.WARNING, 'Por Favor preencha todos os campos') user.save() #Associa o user ao perfil perfil.user = user #Salva o perfil perfil.save() #Recebe o atributo relacionado ao gênero tipo = request.POST.get('genero', False).strip() #Verifica se o atributo é vazio, se for o gênero não é criado if tipo: #Cria a entidade gênero genero = GeneroLivro() genero.perfil = perfil genero.tipo = tipo #Salva o genero criado genero.save() login(request, user) request.session["perfil"] = Perfil.objects.get(user=user).id next = request.GET.get("next", '') if next: return HttpResponse((next)) else: return HttpResponse(reverse("home:index")) if flag: tentativa_de_cadastro['flag'] = True request.session["tentativa_de_cadastro"] = tentativa_de_cadastro url = reverse('accounts:login') next = request.GET.get("next", '') if next: url += '?next={}'.format(next) return HttpResponse(url) return HttpResponse(reverse('home:index'))
def registrarUsuario_view(request): if request.method == "POST": perfil = Perfil() try: nombreusuario = request.POST['usuario'] email = request.POST['mail'] password = request.POST['password'] firstName = request.POST['nombre'] lastName = request.POST['apellido'] user = User.objects.create_user(username=nombreusuario, email=email, password=password, first_name=firstName, last_name=lastName) user.is_staff = True user.save() facultad1 = Facultad.objects.filter( nombre=request.POST['facultad']) facultad2 = Facultad.objects.get(pk=facultad1[0].nombre) perfil.fkFacultad = facultad2 nameuser = User.objects.filter(username=request.POST['usuario']) usuario1 = User.objects.get(pk=nameuser[0].id) perfil.fk_authUser = usuario1 perfil.nombre = request.POST['nombre'] perfil.apellido = request.POST['apellido'] perfil.documento = request.POST['documento'] perfil.telefono = request.POST['telefono'] perfil.celular = request.POST['celular'] perfil.mail = request.POST['mail'] perfil.mail_institucional = request.POST['mail_institucional'] perfil.facultad = request.POST['facultad'] perfil.nro_Proyectos_a_Cargo = request.POST[ 'nro_proyectos_a_cargo'] perfil.rol = request.POST['rol'] perfil.save() return render(request, "administrador/PaginaPrincipalAdmin.html") except KeyError: datosUser = KeyError context = {'datosUser': datosUser} return render(request, "administrador/PaginaPrincipalAdmin.html") else: facultad = Facultad.objects.all() contexto = {'listFacultad': facultad} return render(request, 'administrador/registrarUsuarios.html', contexto)