[RESOLVIDO]Erro "Usuário não autorizado"

Boa tarde master.

Estou fazendo a migração da aplicação de um servidor para outro, o servidor de produção está funcionando normalmente, mas quando fui copiar os arquivos para o novo servidor, aparentemente funciona, porquê quando coloco meu login sem permissão de acesso, ele acusa erro, e quando tento entrar sem login e senha, não passa na validação, porém quando entro com um usuário que tem acesso, ele emite essa mensagem “Usuário não autorizado”.

Me corrija se eu estiver errado, porém na minha humilde opinião, acho que isso não é um erro, é uma condição não satisfeita, porquê senão era pra mostrar algum erro do PHP, e por só mostrar essa mensagem de “Usuário não autorizado”, deve ser alguma configuração de banco que está errado ou uma extensão não ativada.

Tenho a imagem do meu arquivo DIAGNOSIS.PHP, mas não consigo anexar aqui.

NÃO TENHO ACESSO AO PAINEL ADMIN, APENAS AOS ARQUIVOS DO SERVIDOR.

Desde já agradeço a todos. No aguardo, att Gregory.

Você levou no banco de dados as tabelas da segurança ?
Caso não, chegou a sincronizar as aplicações no novo banco de dados ?

Desde já agradeço Jocimar pelo seu retorno.

É o seguinte, esse tópico aqui: http://www.scriptcase.com.br/forum/index.php?topic=8064.0 ilustra basicamente o meu problema, porém eu não tenho acesso ao painel administrativo.

Em relação a sua pergunta, quais seriam as tabelas de segurança, sabe informar ?

E sobre a pergunta do banco, quem fez essa parte, foi um outro rapaz, mas ele disse que fez um DUMP de um banco pra outro.

Porquê essa aplicação, quem desenvolveu não se encontra mais aqui, então estou apanhando pra tentar migrar essa aplicação pra outro servidor, porém está dando esse erro.

Você terá que abrir o banco e conhecer as tabelas existentes.
Aqui uso PostgreSQL, e as tabelas da segurança estão no schema “public”, conforme nomes abaixo:
Lista de relações
Esquema | Nome | Tipo |
---------±------------------------±----------+
public | sc_log | tabela |
public | sc_log_id_seq | sequência |
public | sec_apps | tabela |
public | sec_groups | tabela |
public | sec_groups_apps | tabela |
public | sec_groups_group_id_seq | sequência |
public | sec_users | tabela |
public | sec_users_groups | tabela |
(8 registros)

Bom dia.

Estive lendo esse tópico http://www.scriptcase.com.br/forum/index.php/topic,15660.0.html, e acho que o Moacir abordou um problema que eu tenho, ele disse que a instalação do banco é diferente da que eu vou usar pra desenvolvimento, e é ai que está o problema, eu tenho o banco da aplicação, mas da instalação do SC não. Desde já agradeço.

No aguardo, att Gregory.

Bom dia Gregory.

Você tem em seu banco de dados da aplicação as tabelas que o Jocimar citou ?

Bom dia Eduardo.

Não tenho essas tabelas não, as únicas que eu tenho:

autenticação(ss_empresas, ss_perfis, ss_sistemas, ss_usuarios). // Creio que esse banco aqui verifica o nível de usuário

evento_cartao(arquivos_a_enviar, arquivo_gerado, arquivo_recebido_loja, historico, perfis, processo_em_execucao, rel_lojas, tab_arquivos_txrx, tab_lojas_mestre, tab_parametros, tab_scripts_a_enviar, tab_servidores, tab_status, usuarios). // E esse banco aqui é da aplicação.

Você tem em seu banco de dados da aplicação as tabelas que o Jocimar citou ?

OBS: Esse banco que o Jocimar citou é da instalação, certo ?

Não tenho, pq ACHO que o rapaz que fez essas aplicações em SC, saiu da empresa, como a licensa do SC era dele e não da empresa, ele tirou toda a parte de acesso ao SC, só deixou a aplicação, tirou banco da instalação, tirou os arquivos pra acessar o painel administrativo. Não sei se isso é possivel, mas acho que foi isso que ele fez.

Desde já agradeço, no aguardo.

OBS: Esse banco que o Jocimar citou é da instalação, certo ?

Sim estas tabelas são criadas quando se opta pelo módulo de Segurança “Avançado”.
No seu caso acredito que as aplicações somente necessitam de validação para ser executada.
Pois não há tais tabelas.

É possível sim:

ACHO que o rapaz que fez essas aplicações em SC, saiu da empresa, como a licensa do SC era dele e não da empresa, ele tirou toda a parte de acesso ao SC, só deixou a aplicação, tirou banco da instalação, tirou os arquivos pra acessar o painel administrativo.
[i]Hipótese: Ele pode ter desenvolvido em outro PC, tipo um note dele e vocês ficaram apenas com os fontes.[/i]

Enquanto isso o legal seria você analisar o código de login - verificar onde faz o redirecionamento para a página posterior.

Vou ver se consigo criar uma aplicação com a validação para ser executada e depois tentar encontrar o trecho de código para desabilitar essa segurança.

No seu caso acredito que as aplicações somente necessitam de validação para ser executada.

Exatamente, acho que só faz a validação no AD.

Hipótese: Ele pode ter desenvolvido em outro PC, tipo um note dele e vocês ficaram apenas com os fontes.

Podemos considerar essa hipótese também, mas o certo é que ele deixou só a fonte da aplicação.

Enquanto isso o legal seria você analisar o código de login - verificar onde faz o redirecionamento para a página posterior.

Então, estarei fazendo isso, porquê já encontrei a página que controla o login.

Vou ver se consigo criar uma aplicação com a validação para ser executada e depois tentar encontrar o trecho de código para desabilitar essa segurança.

Te agradeço demais pela sua ajuda.

Seria possível você verificar a versão do ScriptCase até para que possa ajudar?

Para checar basta ir num diretório de uma aplicação e visualizar o fonte do index.php

Exemplo, eu tenho uma aplicação chamada aula.
Terá uma linha similar a esta dentro do diretório aula no arquivo index.php:

$_SESSION[‘scriptcase’][‘aula’][‘glo_nm_path_prod’] = “/scriptcase81/prod”;

Exatamente, acho que só faz a validação no AD.

Então consegue ver a tela inicial do sistema correto ?

E após efetuar o login, se der usuário não autorizado é por quê provavelmente autenticou.
Chegou neste ponto, de digitar usuário e senha e realizar o redirecionamento?

Vou criar a aplicação.

Seria possível você verificar a versão do ScriptCase até para que possa ajudar?

No arquivo index.php está assim:
$_SESSION[‘scriptcase’][‘EVCART_login’][‘glo_nm_path_prod’] = “”; // ou seja, não está informando a versão

Eu encontrei um tópico dizendo como verificar a versão , porém essa pasta devel não está na aplicação.

http://www.scriptcase.com.br/forum/index.php?topic=8831.0

Então consegue ver a tela inicial do sistema correto ?

Correto.

E após efetuar o login, se der usuário não autorizado é por quê provavelmente autenticou.

Ele está autenticando, porquê se eu colocar um login ou senha incorreto, ele dar mensagem de erro informando, e se eu colocar o login certo, ele diz que usuário não autorizado.

Chegou neste ponto, de digitar usuário e senha e realizar o redirecionamento?

Ele não redireciona, continua no index.php e exibe mensagem de erro.

Opa, bacana.
Encontrou o nome da próxima página que o login redireciona ?
Se sim faz já pode fazer um teste simples.

Supondo que essa próxima página seja form_pessoa haverá um diretório denominado form_pessoa.
Acesse este diretório e edite o arquivo index.php.
Nele espera-se que haja uma linha similar a esta:

if(!isset($_SESSION[‘scriptcase’][‘sc_apl_seg’][‘form_pessoa’]) || $_SESSION[‘scriptcase’][‘sc_apl_seg’][‘form_pessoa’] != “on”)

Veja se encontra…

Encontrou o nome da próxima página que o login redireciona ?

Ainda não, estou procurando.

Nele espera-se que haja uma linha similar a esta:

if(!isset($_SESSION[‘scriptcase’][‘sc_apl_seg’][‘form_pessoa’]) || $_SESSION[‘scriptcase’][‘sc_apl_seg’][‘form_pessoa’] != “on”)

Essa linha eu encontrei.

$_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’] = “on”;;

Seria essa pagina pra onde redireciona “EVCART_MENU” ?

Esse é o código que inicia a parte de SC_APL_SEG.

$_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’] = “on”;;

if ( $this->perfil  == 0 ){ 

$_SESSION['scriptcase']['sc_apl_seg']['EVCART_form_usuarios'] = "on";;
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_adm_mestre2'] = "on";;
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_atualiza_scripts'] = "on";;
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_distribui_evento'] = "on";;
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_lojas'] = "on";;
}
elseif ( $this->perfil  == 1 ){ 
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_atualiza_scripts'] = "on";;
}
elseif ( $this->perfil  == 2 ){ 
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_distribui_evento'] = "on";;
}
elseif ( $this->perfil  == 3 ){ 
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_distribui_evento'] = "on";;
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_adm_mestre'] = "on";;
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_lojas'] = "on";;
}
elseif ( $this->perfil  == 4 ){ 
$_SESSION['scriptcase']['sc_apl_seg']['EVCART_form_usuarios'] = "on";;
}
else{ 

if (!empty($this->Campos_Mens_erro)){ $this->Campos_Mens_erro .= “
”;}$this->Campos_Mens_erro .= “Este usuário não tem acesso !!!
”;
if (‘submit_form’ == $this->NM_ajax_opcao || ‘event_’ == substr($this->NM_ajax_opcao, 0, 6))
{
$sErrorIndex = (‘submit_form’ == $this->NM_ajax_opcao) ? ‘geral_EVCART_login’ : substr(substr($this->NM_ajax_opcao, 0, strrpos($this->NM_ajax_opcao, ‘_’)), 6);
$this->NM_ajax_info[‘errList’][$sErrorIndex][] = “Este usuário não tem acesso !!!
”;
}
;
}

Se vc reparar no código acima, esses IF’s verifica o perfil, 0,1,2,3,4, que eu acho que é da tabela autenticacao(ss_perfis) como mencionei nas respostas anteriores.

autenticacao(ss_empresas, ss_perfis, ss_sistemas, ss_usuarios). // Creio que esse banco aqui verifica o nível de usuário

Legal, este código que você postou é o index.php do diretório EVCART_menu ?

A princípio um teste inicial seria comentar o código:

$_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’] = “on”;
//$_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’] = “on”;

Para testar é legal fechar o navegador / limpar o cache para não ficar essa session como “on”.

Eu realizei testes com formulários e deu certo desabilitar a segurança direto no código.
Mas em menu não testei.

Legal, este código que você postou é o index.php do diretório EVCART_menu ?

Desculpa, esse código é do EVCART_login/EVCART_login_apl.php, depois que entendi que era o diretório da pagina que redireciona, o caso EVCART_MENU.

O index em EVCART_MENU é EVCART_menu.php, código abaixo.

if (isset($_SESSION[‘nm_session’][‘user’][‘sec’][‘flag’]) && $_SESSION[‘nm_session’][‘user’][‘sec’][‘flag’] == “N”)
{
$_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’] = “on”;
}
if (!isset($_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’]) || $_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’] != “on”)
{
?>








BODY { }
.css_tabela { border-collapse:collapse; }
.css_item { font-family:Arial;color:#BD3434; }




<?php echo $this->Nm_lang['lang_errm_unth_user']; ?>








function nm_saida()
{ <?php if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) { echo "document.Fseg.action = \"" . $_SERVER['HTTP_REFERER'] . "\";"; echo "document.Fseg.submit();"; } else { echo "window.close()"; } ?>
  }
 </script> 
<?php exit; }

Comenta essa linha em EVCART_MENU :

if (!isset($_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’]) || $_SESSION[‘scriptcase’][‘sc_apl_seg’][‘EVCART_menu’] != “on”)
E abaixo do comentário coloca:
if(false)

Foi assim que desabilitou a segurança no teste que fiz em formulário.
Testei também, resulta no mesmo efeito no menu.

Poderia testar.

Testei aqui, a principio ele desabilitou a segurança, redireciona pra EVCART_menu/EVCART_menu.php, porém dar uma mensagem logo abaixo do menu

[size=14pt][b]"Not Found

The requested URL /EVCART_menu/EVCART_menu/EVCART_menu_menu.php was not found on this server."[/b][/size]

Mas esse arquivo está no diretório.

Pelo menos está mostrando o menu superior, antes nem estava.