Commit aeea746b by Juan

Reset User

1 parent 511000b5
# -*- coding: utf-8 -*-
from odoo import http
import random, os, json
import werkzeug
import random, os, json
from . import rsp
import base64, string, random
TextoAlta = """Hemos resibido su pedido de alta en el sistema.
Pronto se comunicara con usted por este medio un representante de Lappa."""
TextoRecuperacion = """Se a pedido resetear la contraseña de tu usuario {} de LAIKA, si no fuiste vos innforma al administrador. CODIGO: {}"""
# Agregar mensaje de numero repetido
class dispositivos(http.Controller):
......@@ -68,3 +74,113 @@ class dispositivos(http.Controller):
@http.route('/lappa/blank', auth='public', type='http' , website=True ,csrf=False, methods = ['POST','GET','OPTIONS'])
def index6(self, **kw):
return("")
#"""Controlador de acceso a firmas"""
@http.route('/lappa/usuarios/resetearconntrasena', auth='public', type='http' , website=True ,csrf=False, methods = ['POST','GET'])
def indexvcxx(self, **kw):
#print(kw)
try:
tel = kw["celular"]
info = self.ResetUsuario(tel)
#print(info)
url = '/lappa/usuarios/resetearconntrasenaetp3?cewc={}&edsac={}&decsdas={}'.format(info["token"],info["usuario"],self.cualquiera(7))
rto = werkzeug.utils.redirect(url)
except:
rto = rsp.html
#print(rto)
return(rto)
@http.route('/lappa/usuarios/resetearconntrasenaetp3', auth='public', type='http' , website=True ,csrf=False, methods = ['GET'])
def indsdfsdex3(self, **kw):
try:
UID = kw["UID"]
token = kw["token"]
passw = kw['password']
codigo = kw['codigo']
if self.ChequearToken(codigo,token):
self.cambiar_pass(UID,passw)
return(werkzeug.utils.redirect('/'))
except:
UID = kw["edsac"]
token = kw["cewc"]
#print(UID,token)
html = rsp.html3.replace("{TOKEN}",token)
html = html.replace("{UID}",UID)
return(html)
def ResetUsuario(self,celular):
rto = False
user = http.request.env['res.users'].sudo().search([["CelularRecuperacion","=",celular]])
#print(user)
if len(user) == 1:
url = http.request.env['ir.config_parameter'].sudo().get_param('web.base.url')
clave = self.GeneradorClave(6)#Cantidad de caracteres en la clabe
text = TextoRecuperacion.format(user.display_name, clave[0])#lo que se envia por mensaje
#print(text)
self.enviar_mensaje(mensaje=text,telefono=celular,titulo="Administracion LAIKA")
rto = {"token": clave[1], "usuario":user.id}
return(rto)
def enviar_mensaje(self, tipo='Whatsapp', mensaje="mensaje", titulo="Titulo",email="",telefono=""):#Crea mensaje y lo envia
#Hay que agregar al modelo la relacion con los mensajes para tener trazavilidad
vals = {"mensaje_nombre":titulo,
"mensaje_descripcion":mensaje,
"mensaje_numero_whatsapp":telefono,
"mensaje_direccion_mail":email,
"identidad":1}
mensaje = http.request.env['asw.mensaje'].sudo().create(vals)
mensaje.tipo = tipo
mensaje.enviar()
@http.route('/lappa/usuarios/resetearconntrasenaetp2', auth='public', type='http' , website=True ,csrf=False, methods = ['GET'])
def index2(self, **kw):
print(kw)
#vewrftbv={}&vfds={}&wdcwexas=dwdwqcaA
try:
UID = int(kw["token"])
passw = kw['password']
self.cambiar_pass(UID,passw)
return(werkzeug.utils.redirect('/'))
except:
pass
try:
UID = kw["vfds"]
rto = rsp.html3.replace("{TOKEN}",UID)
except:
rto = werkzeug.utils.redirect('/')
return(rto)
def cambiar_pass(self,UID, passw):
user = http.request.env['res.users'].sudo().search([["id","=",UID]])
user.password = passw
def GeneradorClave(self,largo=6):
codigo = self.cualquiera(largo)
token = self.encodear(codigo)
return(codigo,token)
def ChequearToken(self,codigo,token):
if self.decodificar(token) == codigo:
return(True)
else:
return(False)
def cualquiera(self,largo=6):
return(''.join(random.choice(string.digits + string.ascii_letters) for _ in range(largo)))
def encodear(self,text):
message_bytes = text.encode('ascii')
base64_bytes = base64.b64encode(message_bytes)
base64_message = base64_bytes.decode('ascii')
return(base64_message)
def decodificar(self,bs):
base64_bytes = bs.encode('ascii')
message_bytes = base64.b64decode(base64_bytes)
message = message_bytes.decode('ascii')
return(message)
......@@ -5,7 +5,7 @@ import random, os, json
import base64, string, random
TextoAlta = """Se a pedido resetear la contraseña de tu usuario {} de LAIKA, si no fuiste vos no hagas nada. Si quieres hacerlo sigue el siguiente enlase {}/usuarios/resetearconntrasenaetp2?vewrftbv={}&vfds={}&wdcwexas=dwdwqcaA"""
TextoRecuperacion = """Se a pedido resetear la contraseña de tu usuario {} de LAIKA, si no fuiste vos innforma al administrador. CODIGO: {}"""
TextoRecuperacion = """Se a pedido resetear la contraseña de tu usuario {} de LAIKA, si no fuiste vos innforma al administrador. CODIGO: {} URL {}"""
class restablecedor(http.Controller):
"""Controlador de acceso a firmas"""
......@@ -58,6 +58,7 @@ class restablecedor(http.Controller):
user = http.request.env['res.users'].sudo().search([["CelularRecuperacion","=",celular]])
if len(user) == 1:
clave = self.GeneradorClave(6)#Cantidad de caracteres en la clabe
url = 'https://lappa.hgt.com.ar/lappa/usuarios/resetearconntrasenaetp3?cewc={}&edsac={}&decsdas={}'.format(info["token"],info["usuario"],self.cualquiera(7))
text = TextoRecuperacion.format(user.display_name, clave[0])#lo que se envia por mensaje
self.enviar_mensaje(mensaje=text,telefono=celular,titulo="Administracion LAIKA")
rto = {"token": clave, "usuario":user,}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!