Example #1
0
 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)
Example #2
0
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/')
Example #3
0
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))
Example #4
0
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)