public override bool execute( ) { Registry("execute type_base "); /// USER [ execute ] input_cont_header.set_st_empresa(input_cont_header.get_st_empresa().PadLeft(6, '0')); user.set_dt_ultUso(GetDataBaseTime()); if (!user.synchronize_T_Usuario()) { return(false); } if (user.get_int_tg_aviso() == 1) { PublishNote("Favor fechar sua sessão para atualização de sistema"); } /// USER [ execute ] END Registry("execute done type_base "); return(true); }
public override bool execute( ) { Registry("execute exec_login "); /// USER [ execute ] output_tg_trocaSenha = Context.FALSE; user = new T_Usuario(this); user.ExclusiveAccess(); // ## Busca usuário com nome e cód de empresa if (loginLojista) { string st_loja = input_st_empresa.Replace("L", ""); T_Loja loj = new T_Loja(this); if (!loj.select_rows_loja(st_loja)) { PublishError("Usuário ou senha incorretos"); return(false); } if (!loj.fetch()) { return(false); } T_Terminal term = new T_Terminal(this); if (!term.select_fk_loja(loj.get_identity())) { PublishError("Usuário ou senha incorretos"); return(false); } if (!term.fetch()) { return(false); } LINK_UsuarioTerminal lut = new LINK_UsuarioTerminal(this); if (!lut.select_fk_term(term.get_identity())) { PublishError("Usuário ou senha incorretos"); return(false); } bool found = false; T_Usuario usr_lojista = new T_Usuario(this); while (lut.fetch()) { if (!usr_lojista.selectIdentity(lut.get_fk_user())) { return(false); } Trace(usr_lojista.get_st_nome()); if (usr_lojista.get_st_nome() == input_st_nome) { found = true; break; } } if (!found) { PublishError("Usuário ou senha incorretos"); return(false); } if (!user.selectIdentity(usr_lojista.get_identity())) { return(false); } input_st_empresa = st_loja; output_cont_header.set_nu_terminal(term.get_nu_terminal()); } else { if (!user.select_rows_login(input_st_nome, input_st_empresa)) { PublishError("Usuário ou senha incorretos"); return(false); } if (!user.fetch()) { return(false); } } // ## Confere bloqueio if (user.get_tg_bloqueio() != Context.FALSE) { PublishError("Usuário ou senha incorretos"); return(false); } // ## Confere senha if (user.get_st_senha() != input_st_senha) { user.set_nu_senhaErrada(Convert.ToString(user.get_int_nu_senhaErrada() + 1)); if (user.get_int_nu_senhaErrada() >= 3) { // ## Na terceira senha errada, bloqueia cartão //user.set_tg_bloqueio ( Context.TRUE ); //user.set_nu_senhaErrada ( 0 ); } // ## Atualiza if (!user.synchronize_T_Usuario()) { return(false); } PublishError("Usuário ou senha incorretos"); return(false); } else { // ## Zera senhas erradas ut_coverMark(1); user.set_nu_senhaErrada(0); } // ## Caso o ultimo logoff não foi executado, ou seja, // ## o usuário não fechou corretamente sua última instância if (user.get_tg_logoff() == Context.FALSE) { // ## Mais de cinco minutos se passaram... if (TimeSpanCtrl(user.get_dt_ultUso(), TSpan_Mode.MORE_THAN, 5, TSpan_Range.Minutes) == true) { PublishNote("Disconectando sessão ociosa por mais de cinco minutos"); } else { PublishError("Não são permitidas multiplas sessões"); return(false); } } // ## Seto que o logoff precisa ser feito user.set_tg_logoff(Context.FALSE); // ## Confere se senha expirou... if (TimeSpanCtrl(user.get_dt_trocaSenha(), TSpan_Mode.MORE_THAN, 60, TSpan_Range.Days) == true) { output_tg_trocaSenha = Context.TRUE; PublishNote("É necessário trocar sua senha"); } // ## Confere se admin requisitou troca de senha if (user.get_tg_trocaSenha() == Context.TRUE) { output_tg_trocaSenha = Context.TRUE; PublishNote("É necessário trocar sua senha"); } // ## Seto login feito agora user.set_dt_ultUso(GetDataBaseTime()); // ## Atualizo usuário if (!user.synchronize_T_Usuario()) { return(false); } output_cont_header.set_st_session(var_SessionKey); output_cont_header.set_st_empresa(input_st_empresa); output_cont_header.set_st_user_id(user.get_identity()); output_cont_header.set_tg_user_type(user.get_tg_nivel()); /// USER [ execute ] END Registry("execute done exec_login "); return(true); }