PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → WX - Metodo Groupware para Webdev
WX - Metodo Groupware para Webdev
Débuté par BOLLER, 25 mai 2017 21:58 - 2 réponses
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 25 mai 2017 - 21:58
Metodo Groupware para Webdev

O projeto Groupware deve remover [x] unicode de todos os campos e variáveis

// Summary: <specify the procedure action>
// Syntax:
//GPW_LoginPassword (<gLogin> is string, <gPassword> is string)
//
// Parameters:
// gLogin (ANSI string):<specify the role of gLogin>
// gPassword (ANSI string):<specify the role of gPassword>
// Return Value:
// None
//
// For instance:
// Indicate an example.
//
Procedure GPW_LoginPassword( gLogin is string, gPassword is string )

//Conexao com o Groupware

NextTitle("Atenção")
ok0, ok1, ok2, ok3, ok4, ok5, ok6, ok7, ok8, LoginOK is boolean

//Chumbado
sGsPaginaInicial is string = "PAGE_Logado"

nReturnedValue is int = 0

gpwUser is Data Source

//HReadSeek(GPU_ConfigDatabase,DatabaseID,1)
HReadSeekFirst(GPU_ConfigDatabase,DatabaseID,1,hKeepFilter)
IF HFound(GPU_ConfigDatabase)

//if GPU_ConfigDatabase.DriverDatabase = "WinDevSQLServer"
// CNT_GPW..Provider = hNativeAccessSQLServer
IF GPU_ConfigDatabase.DriverDatabase = "WinDevClientServeurHF"
CNT_GPW..Provider = hAccessHFClientServer
ELSE IF GPU_ConfigDatabase.DriverDatabase = "WinDevOledbSQLServer"
CNT_GPW..Provider = hOledbSQLServer
ELSE
CNT_GPW..Provider = hNativeAccessSQLServer
END

CNT_GPW..User = GPU_ConfigDatabase.UserDataBase
CNT_GPW..Password = GPU_ConfigDatabase.PassWordDataBase
CNT_GPW..Source = GPU_ConfigDatabase.DataSource
CNT_GPW..Database = GPU_ConfigDatabase.DatabaseName
CNT_GPW..CryptMethod = hCryptNo

ELSE

ok0 = True
CNT_GPW..Provider = hNativeAccessSQLServer
CNT_GPW..User = "adriano"
CNT_GPW..Password = "29121974"
CNT_GPW..Source = "192.168.0.1\projeto"
CNT_GPW..Database = "projeto_catalogo" //conectar primeiro no catalogo
CNT_GPW..CryptMethod = hCryptNo
HAdd(GPU_ConfigDatabase)

END

// Open the connection
ok1 = gpwOpenConnection(CNT_GPW)

ok2 = HOpenConnection(CNT_GPW)
IF ok2 = False THEN
Info(ErrorOccurred() +" - "+ HErrorInfo())
END

ok3 = HChangeConnection(gpwUser,CNT_GPW)

IF ErrorInfo() > 0 OR ok3 = False
Error(HErrorInfo() + CR + ErrorInfo())
END

gsLoginUser = gLogin

gsSENHA_Criptografada is string = SET_GPU_News.GPW_StringToInteger(gPassword)

//HReadSeekFirst(GPU_User,GPU_User.Login,gsLoginUser)

IF ok1 = True AND ok2 = True AND ok3 = True

IF gpwInitAnalysis() = False THEN

Error(ErrorInfo())

ok5 = False

ELSE

ok5 = True

ok4 = HExecuteQuery(QRY_GPU_User_Login,CNT_GPW,hQueryWithoutCorrection,"'"+gsLoginUser+"'")
//info(errorinfo())
IF ok4 = True
FOR EACH QRY_GPU_User_Login
IF HFound(QRY_GPU_User_Login) = True AND QRY_GPU_User_Login.Login = gsLoginUser AND QRY_GPU_User_Login.Password = gsSENHA_Criptografada OR
HFound(QRY_GPU_User_Login) = True AND QRY_GPU_User_Login.Login = Upper(gsLoginUser) AND QRY_GPU_User_Login.Password = gsSENHA_Criptografada

LoginOK = True
gsSenha = SET_GPU_News.GPW_IntegerToString(GPU_User.Password)

gnUserID = QRY_GPU_User_Login.UserID
gsLoginUser = QRY_GPU_User_Login.Login
gsSenhaCript = QRY_GPU_User_Login.Password
gbIsSupervisor = QRY_GPU_User_Login.Supervisor
gsCNPJ = QRY_GPU_User_Login.CNPJ //FILTRO DE LISTAGEM SÓ DO CLIENTE
gsGPU_UserCompany = QRY_GPU_User_Login.Company
gsGPU_UserInscEstadual = QRY_GPU_User_Login.InscEstadual
gsGPU_UserInscMunicipal = QRY_GPU_User_Login.InscMunicipal
gsGPU_UserTrial = QRY_GPU_User_Login.Trial
gsGPU_UserCounter = QRY_GPU_User_Login.Counter
gsGPU_UserDataSource = QRY_GPU_User_Login.DatabaseName
gsGPU_UserPortaDB = QRY_GPU_User_Login.PortaDB
gsGPU_UserDatabaseName = QRY_GPU_User_Login.DatabaseName
gsGPU_UserUserDataBase = QRY_GPU_User_Login.UserDataBase
gsGPU_UserPassWordDataBase = QRY_GPU_User_Login.PassWordDataBase
END
END
END

//checa login e senha
nRes is int = gpwCheckUser(gsLoginUser,gsSENHA_Criptografada)

IF nRes = 0 AND LoginOK = True

ok6 = True //100%

nReturnedValue = gpwConnectUser(gsLoginUser, gsSENHA_Criptografada)

IF nReturnedValue <> gpwOk AND nReturnedValue <> 0 THEN

SWITCH nReturnedValue
CASE gpwError: Error("Unable to connect.")
CASE gpwUnknownUser, gpwInvalidPassword:
Error("Usuário inválido ou senha.")
END

ok7 = False

ToastDisplay("Login ou senha não encontrado",toastLong,vaBottom,haCenter)

ELSE IF nReturnedValue = gpwOk OR nReturnedValue = 0

//Historico e conexão dos usuários
GPU_ConnectionHistory.ConnectionDate = DateSys()
GPU_ConnectionHistory.ConnectionTime = TimeSys()
//GPU_ConnectionHistory.IPAddress = GPW_MeuIp
GPU_ConnectionHistory.TargetID = 1 //gnTargetID//
GPU_ConnectionHistory.UserID = gnUserID
ok7 = HAdd(GPU_ConnectionHistory)
IF ok7 = False THEN
ToastDisplay("Erro ao registrar o log de acesso",toastLong,vaMiddle,haCenter)
END

ok8 = gpwGetUserInfo(gpwInfoSupervisor)

// Connect as administrator
IF ok8=True AND gsLoginUser = "SUPERVISOR-ASPLAN" THEN

// Open the connection
ok1 = gpwOpenConnection(CNT_GPW) //catalogo

ok2 = HOpenConnection(CNT_GPW)
IF ok2 = False THEN
Info(ErrorOccurred() +" - "+ HErrorInfo())
END

ok3 = HChangeConnection("*",CNT_GPW)

IF ErrorInfo() > 0 OR ok3 = False
Error(HErrorInfo() + CR + ErrorInfo())
ELSE
PageDisplay(PAGE_GPU_UsersAndGroups)
END

ELSE IF ok8 = True AND gsLoginUser <> "SUPERVISOR"

// Open the connection
ok1 = gpwOpenConnection(ConnAsplan360) //user normal

ok2 = HOpenConnection(ConnAsplan360)
IF ok2 = False THEN
Info(ErrorOccurred() +" - "+ HErrorInfo())
END

ok3 = HChangeConnection("*",ConnAsplan360)

IF ErrorInfo() > 0 OR ok3 = False
Error(HErrorInfo() + CR + ErrorInfo())
ELSE
PageDisplay(PAGE_Default)
END

ELSE
ToastDisplay("Usuário não localizado",toastLong,vaBottom,haCenter)
END

END

ELSE
ToastDisplay("Login ou senha não encontrado",toastLong,vaBottom,haCenter)
END

END

ELSE
ToastDisplay("Erro na Conexao com Groupware!",toastLong,vaBottom,haCenter)
END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 25 mai 2017 - 21:59
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 25 mai 2017 - 22:03
Usando Webservice

// Summary: <specify the procedure action>
// Syntax:
//GPW_LoginPasswordWS (<gLogin> is string, <gPassword> is string)
//
// Parameters:
// gLogin (ANSI string): <specify the role of gLogin>
// gPassword (ANSI string): <specify the role of gPassword>
// Return Value:
// None
//
// For instance:
// Indicate an example.
//
Procedure GPW_LoginPasswordWS(gLogin is string,gPassword is string )

nReturnedValue is int= 0
gsSENHA_Criptografada is string
sGsPaginaInicial is string = "PAGE_Logado"
sValorRetXml is string
XsdRetLogin is xmlDocument
LoginOK is boolean


ok0 = True
CNT_GPW..Provider = hNativeAccessSQLServer
CNT_GPW..User = "adriano"
CNT_GPW..Password = "29121974"
CNT_GPW..Source = "192.168.0.1\projeto"
CNT_GPW..Database = "projeto_catalogo" //conectar primeiro no catalogo
CNT_GPW..CryptMethod = hCryptNo
HAdd(GPU_ConfigDatabase)


IF gpwOpenConnection(CNT_GPW) THEN
gsLoginUser = gLogin
gsSENHA_Criptografada = SET_GPU_News.GPW_StringToInteger(gPassword)

IF gpwInitAnalysis() = True THEN

//WEBSERVICE
//--------------------------------------------------------------------------------------//
ValidaLoginResult is ValidarLoginResponse
ValidaLoginResult = ValidarLogin(gLogin,gsSENHA_Criptografada)
sValorRetXml = ValidaLoginResult.ValidarLoginResult..Value
XsdRetLogin = XMLOpen(Replace(NoAccent(sValorRetXml),"'",""),fromString)
//--------------------------------------------------------------------------------------//

////IF XsdRetLogin <> NULL
//LoginOK = XsdRetLogin.RetWs.login
//IF LoginOK = True THEN

GPW_CarregaVariaveis(XsdRetLogin.RetWs.InfoUsu)

IF gpwCheckUser(gsLoginUser,gsSENHA_Criptografada) = gpwOk

nReturnedValue = gpwConnectUser(gsLoginUser, gsSENHA_Criptografada)

IF nReturnedValue = gpwOk THEN

GPW_InserirHistConx()

IF gpwGetUserInfo(gpwInfoSupervisor) = True THEN

PageDisplay(PAGE_GPU_UsersAndGroups)

ELSE

PageDisplay(PAGE_Default)

END

END

END

END

END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 25 mai 2017 - 22:06
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 25 mai 2017 - 22:13
Procedure ValidarLogin(sEmail is string, sSenha is string)
bLogin is boolean = False
clUsuario is Usuario
sRetXml is string
arrResultado is array of string

QRY_GPU_User_Login.pEmail = sEmail
QRY_GPU_User_Login.pSenha = sSenha

IF HExecuteQuery(QRY_GPU_User_Login,ConnCatalogo,hQueryDefault)
FOR EACH QRY_GPU_User_Login
IF HFound(QRY_GPU_User_Login) = True THEN
bLogin = True
clUsuario.nUserID = QRY_GPU_User_Login.UserID
clUsuario.sLoginUser = QRY_GPU_User_Login.Login
clUsuario.bIsSupervisor = QRY_GPU_User_Login.Supervisor
clUsuario.nCNPJ = QRY_GPU_User_Login.CNPJ
clUsuario.sGPU_UserCompany = QRY_GPU_User_Login.Company
clUsuario.bGPU_UserTrial = QRY_GPU_User_Login.Trial
clUsuario.sGPU_UserDataSource = QRY_GPU_User_Login.DataSource
clUsuario.nGPU_UserPortaDB = QRY_GPU_User_Login.PortaDB
clUsuario.sGPU_UserDatabaseName = QRY_GPU_User_Login.DatabaseName
clUsuario.sGPU_UserUserDataBase = QRY_GPU_User_Login.UserDataBase
clUsuario.sGPU_UserPassWordDataBase = QRY_GPU_User_Login.PassWordDataBase
END
END

HFreeQuery(QRY_GPU_User_Login)
END

sRetXml = ws_MontaRetValidarLogin(bLogin,clUsuario)

Add(arrResultado,sRetXml)

RESULT arrResultado


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/