Browse Source

Alteracoes para permitir login apenas por email, pois precisamos que o nome de usuario e matricula seja repetido por oerganizacao, tambÃem foi retornado a autenticacao pelo

campo check_vl que eh criptografado e proteje contra sql injection, alteracao para permitir que as configuracoes sejam isoladas de forma correta entre as organizacoes, mantendo as configuracoes padrao apenas para organizzacao master
. Tambem foi modificado o conceito de organizacao master, esta opcao fica agora atralada a organizacao com id = 0, pois sera usada como template para criacao das demais aplicacoes, algumas alteracoes no banco estao no arquvo:
projeto/base/sql/versao-1.9.0.sql para permitir que as alteracoes sejam realizadas.
cadastro_ramais
AMARILDO PEREIRA 6 months ago committed by bruno
parent
commit
585859982c
  1. 8
      configGeral.php
  2. 36
      include/util/funcoesApl.php
  3. 7
      login.php
  4. 16
      projeto/base/sql/versao-1.9.0.sql
  5. 2
      seguranca/usuarioCad.php
  6. 4
      templates/configSys.tpl

8
configGeral.php

@ -10,6 +10,7 @@ define("CONFIG_LICENCA", 6);
$query = "";
$org_id = GetOrganizacao();
$isMaster = GetOrganizacaoIsMaster();
if ($idSubProg == -1) {
$idSubProg = 0;
@ -101,6 +102,7 @@ if ($idSubProg == CONFIG_BASE_DADOS) {
//template configGeral
$tpl = "configSys.tpl";
$smarty->assign("idSubProg", $idSubProg);
$smarty->assign("isMaster", $isMaster);
DispRel($smarty, $tpl);
} else if ($idSubProg == CONFIG_GERAL_SISTEMA) {
/*
@ -271,6 +273,7 @@ if ($idSubProg == CONFIG_BASE_DADOS) {
//template configGeral
$tpl = "configSys.tpl";
$smarty->assign("idSubProg", $idSubProg);
$smarty->assign("isMaster", $isMaster);
DispRel($smarty, $tpl);
} else if ($idSubProg == CONFIG_AGENTE) {
include_once('admin/funcoes.php');
@ -348,6 +351,7 @@ if ($idSubProg == CONFIG_BASE_DADOS) {
//template configGeral
$tpl = "configSys.tpl";
$smarty->assign("idSubProg", $idSubProg);
$smarty->assign("isMaster", $isMaster);
DispRel($smarty, $tpl);
} else if ($idSubProg == CONFIG_SUPERVISOR) {
/*
@ -409,6 +413,7 @@ if ($idSubProg == CONFIG_BASE_DADOS) {
//template configGeral
$tpl = "configSys.tpl";
$smarty->assign("idSubProg", $idSubProg);
$smarty->assign("isMaster", $isMaster);
DispRel($smarty, $tpl);
} else if ($idSubProg == CONFIG_MANAGER) {
/*
@ -482,6 +487,7 @@ if ($idSubProg == CONFIG_BASE_DADOS) {
//template configGeral
$tpl = "configSys.tpl";
$smarty->assign("idSubProg", $idSubProg);
$smarty->assign("isMaster", $isMaster);
DispRel($smarty, $tpl);
} else if ($idSubProg == CONFIG_SERVICE) {
/*
@ -536,6 +542,7 @@ if ($idSubProg == CONFIG_BASE_DADOS) {
//template configGeral
$tpl = "configSys.tpl";
$smarty->assign("idSubProg", $idSubProg);
$smarty->assign("isMaster", $isMaster);
DispRel($smarty, $tpl);
} else if ($idSubProg == CONFIG_LICENCA) {
include_once "util/funcoesLicenca.php";
@ -592,6 +599,7 @@ if ($idSubProg == CONFIG_BASE_DADOS) {
//template configGeral
$tpl = "configSys.tpl";
$smarty->assign("idSubProg", $idSubProg);
$smarty->assign("isMaster", $isMaster);
DispRel($smarty, $tpl);
}

36
include/util/funcoesApl.php

@ -1317,16 +1317,25 @@ function GetOrganizacao() {
}
return $_SESSION['SSEmpresaPadrao'];
}
/*
* A organizacao master sempre tera o id 0, porque é basicamente usada como templante
* para as demais organizacoes.
*/
function GetOrganizacaoMaster() {
global $dbcon;
if (empty($_SESSION['SSEmpresaMaster']) && IsUserConnect()) {
$query = "select id from pbx_organizacao where master = '1'";
$result = pg_query($dbcon, $query);
$res = pg_fetch_assoc($result);
$_SESSION['SSEmpresaMaster'] = $res['id'];
}
return $_SESSION['SSEmpresaMaster'];
return 0;
// global $dbcon;
// if (empty($_SESSION['SSEmpresaMaster']) && IsUserConnect()) {
// $query = "select id from pbx_organizacao where master = '1'";
// $result = pg_query($dbcon, $query);
// $res = pg_fetch_assoc($result);
// $_SESSION['SSEmpresaMaster'] = $res['id'];
// }
// return $_SESSION['SSEmpresaMaster'];
}
function GetOrganizacaoIsMaster(){
return (int)StrToIntDef(GetOrganizacao(), -1) === 0 ? true : false;
}
function GetAllOrganizacao() {
@ -4954,11 +4963,11 @@ function AddIdxOrganizacao($str, $lower = false) {
function RemoveIdxOrgnizacao($nomeFile, $path = false) {
$org_id = GetOrganizacao();
if(!$org_id){
if (!$org_id) {
return $nomeFile;
}
if (!$path) {
return str_replace(sprintf("__%s__", $org_id), '', $nomeFile);
}
@ -4979,9 +4988,10 @@ function RemoveIdxOrgnizacao($nomeFile, $path = false) {
* $ramal = RemoveOrganizacaoStr('41000');
* $ramal sera igual a 1000.
*/
function RemoveOrganizacaoStr($str) {
$org_id = GetOrganizacao();
if(!$org_id){
if (!$org_id) {
return $str;
}
return strpos($str, $orgId) === 0 ? substr($str, strlen($orgId)) : $str;

7
login.php

@ -36,11 +36,14 @@ if (isset($_POST['btLogin'])) {
case when((senha_ult_atualiza + senha_dias_expira) < CURRENT_DATE)then 1 else 0 end as senha_expirada,
penalidade, senha, termo_uso_privacidade
from pbx_usuarios u
where (u.check_vl = md5(%s) OR email = %s)
where u.check_vl = md5(%s)
and coalesce(status, true) = true
and coalesce(delete_,0) = 0 ";
$query = sprintf($query, QuotedStr($login), QuotedStr($login));
//where (u.check_vl = md5(%s) OR email = %s)
//$query = sprintf($query, QuotedStr($login), QuotedStr($login));
$query = sprintf($query, QuotedStr($login));
$result = pg_query($dbcon, $query);
// Autentica usuário //

16
projeto/base/sql/versao-1.9.0.sql

@ -203,5 +203,19 @@ UNION ALL
ORDER BY 1;
update pbx_usuarios set org_padrao = 0, user_system = 1, email = apelido || '@system.cloud' where id in(341,342,462,467);
alter table pbx_usuarios alter column email set not null;
drop index if exists idxPbxUsuariosApelido;
drop index if exists idxPbxUsuariosApelido;
create unique index "idxPbxUsuariosEmail" on pbx_usuarios(email);
create unique index "idxPbxUsuariosApelido" on pbx_usuarios(apelido);
-- Removendo a chave primária existente
ALTER TABLE pbx_usuarios DROP CONSTRAINT if exists "pbx_usuarios_pkey";
ALTER TABLE pbx_usuarios DROP CONSTRAINT if exists "pkPbxUsuarios";
-- Adicionando nova chave primária
ALTER TABLE pbx_usuarios ADD CONSTRAINT "pkPbxUsuarios" PRIMARY KEY (id);
-- Recolocando protecao contra sql injection que foi removida.
update pbx_usuarios set check_vl = md5(email);

2
seguranca/usuarioCad.php

@ -93,7 +93,7 @@ if (isset($_GET["idUser"]) && $_GET["idUser"] == 0) {
$userStatus == "checked" ? 'true' : 'false',
$penalidade,
QuotedStr($dacPadraoSel),
QuotedStr($userLogin),
QuotedStr($userEmail),
$userExpiraSenha,
$empPadrao
);

4
templates/configSys.tpl

@ -8,13 +8,17 @@
<th colspan="8">Configura&ccedil;&atilde;o Geral do Sistema </th>
</tr>
<tr align="center" >
{if $isMaster}
<th><a style="color:#FFF;" href="index.php?idProg=20&idSubProg=0">Banco de Dados</a></th>
{/if}
<th><a style="color:#FFF;" href="index.php?idProg=20&idSubProg=1">Sistema</a></th>
<th><a style="color:#FFF;" href="index.php?idProg=20&idSubProg=2">Agente</a></th>
<th><a style="color:#FFF;" href="index.php?idProg=20&idSubProg=3">Supervisor</a></th>
{if $isMaster}
<th><a style="color:#FFF;" href="index.php?idProg=20&idSubProg=4">Socket Server</a></th>
<th><a style="color:#FFF;" href="index.php?idProg=20&idSubProg=5">Serviços</a></th>
<th><a style="color:#FFF;" href="index.php?idProg=20&idSubProg=6">Licenciamento</a></th>
{/if}
</tr>
</table>
</td>

Loading…
Cancel
Save