Autor Tópico: (RESOLVIDO)Usuario logado X ADMIN  (Lida 1222 vezes)

madxx

  • Iniciante
  • **
  • Mensagens: 81
    • Email
(RESOLVIDO)Usuario logado X ADMIN
« Online: Abril 25, 2012, 05:54:39 pm »
Boa pessoal!!!
vou postar o SQL de uma consulta para melhor entendimento da solução que eu busco.

Código: [Selecionar]
SELECT
    id_cliente,
    nome_cliente,
    razao_social,
    CNPJ,
    logradouro,
    numero,
    CEP,
    bairro,
    cidade,
    UF,
    cliente_desde
FROM
    cliente
WHERE nome_cliente = '[usr_name]'

Isto esta em uma consulta com uma sub-consulta de historico de atendimento, Perfeito!
Ele faz exatamente o q quero, mostra somente as informações do usuario q logou.
Como fazer para o ADMIN ver todas as informações? Pois logado como ADMIN, nao tem informações a serem visualizadas.
obs.: O modulo de segurança esta em uso nesta aplicação.
Obrigado pela atenção!!!
att.
Fernando Marinho Iankoski
« Última modificação: Abril 25, 2012, 11:47:29 pm por madxx »

jovitomelo

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 916
    • Simples Assim
    • Email
Re:Usuario logado X ADMIN
« Responder #1 Online: Abril 25, 2012, 07:50:44 pm »
WHERE nome_cliente = '[usr_name]' OR '[usr_name]' = 'admin'
Jovito Melo
Maceió - Alagoas

madxx

  • Iniciante
  • **
  • Mensagens: 81
    • Email
Re:Usuario logado X ADMIN
« Responder #2 Online: Abril 25, 2012, 11:27:07 pm »
WHERE nome_cliente = '[usr_name]' OR '[usr_name]' = 'admin'

Até achei q realmente essa seria a solução!!! testei mas nao deu, o problema é a claúsula WHERE ela nao podia existir para o ADMIN. na verdade traduzindo ficaria o seguinte:
WHERE cliente_teste = cliente_teste
ou
WHERE ADMIN = ADMIN
Teria q ter uma maneira de excluir o where para o admin tipo um "IF"- vou pesquisando!!
Abraços!!!!
Obrigado pela sua atenção!
Aproveitando - Parabéns pelo A.U.S.
Fernando Marinho Iankoski

madxx

  • Iniciante
  • **
  • Mensagens: 81
    • Email
(RESOLVIDO) - Usuario logado X ADMIN
« Responder #3 Online: Abril 25, 2012, 11:46:14 pm »
if ([usr_name] == 'admin')
{
     sc_exec_sql("SELECT
    id_cliente,
    nome_cliente,
    razao_social,
    CNPJ,
    logradouro,
    numero,
    CEP,
    bairro,
    cidade,
    UF,
    cliente_desde
FROM
    cliente");
}

Abraço a todos!!!!

jovitomelo

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 916
    • Simples Assim
    • Email
Re:(RESOLVIDO)Usuario logado X ADMIN
« Responder #4 Online: Abril 26, 2012, 12:45:51 am »
Fernando,

Se você acha que está resolvido desta forma, ok, então está... eu fui quem não entendi direito.

Me tire esta dúvida:

Quando você coloca esta cláusula WHERE nome_cliente = '[usr_name]', você está restringindo o resultado a um determinado usuário... ou seja, apenas se o '[usr_name]' for igual ao cliente terá acesso ao resultado do select... estou certo?

Pois bem, a seguir você deseja que além do '[usr_name]', o ADMIN também possa ter acesso a esta informação... ou seja, o ADMIN terá acesso a todas as informações, independentemente de qual seja o  nome_cliente... estou certo?

Se for isso, para que esta situação seja verdadeira, no momento em que ADMIN solicita essa query, e o nome dele não é igual a nome_cliente, isso só será possível se houver uma cláusula OR qualquer_coisa = qualquer_coisa, ou como você mencionou OR ADMIN = ADMIN... a intenção realmente é esta, OR mais uma igualdade verdadeira...

Da forma como vc acha que está correto não haverá restrição do usuário ter acesso ao select se nome_cliente != '[usr_name]'

Veja isso.

[]
Jovito Melo
Maceió - Alagoas

madxx

  • Iniciante
  • **
  • Mensagens: 81
    • Email
Re:(RESOLVIDO)Usuario logado X ADMIN
« Responder #5 Online: Abril 26, 2012, 01:12:14 pm »
Fernando,

Se você acha que está resolvido desta forma, ok, então está... eu fui quem não entendi direito.

Me tire esta dúvida:

Quando você coloca esta cláusula WHERE nome_cliente = '[usr_name]', você está restringindo o resultado a um determinado usuário... ou seja, apenas se o '[usr_name]' for igual ao cliente terá acesso ao resultado do select... estou certo?
EXATAMENTE ISSO

Pois bem, a seguir você deseja que além do '[usr_name]', o ADMIN também possa ter acesso a esta informação... ou seja, o ADMIN terá acesso a todas as informações, independentemente de qual seja o  nome_cliente... estou certo?
TAMBEM ESTA CORRETO

Se for isso, para que esta situação seja verdadeira, no momento em que ADMIN solicita essa query, e o nome dele não é igual a nome_cliente, isso só será possível se houver uma cláusula OR qualquer_coisa = qualquer_coisa, ou como você mencionou OR ADMIN = ADMIN... a intenção realmente é esta, OR mais uma igualdade verdadeira...
SIM, MAS NAO PODERIA TER A CLAUSULA 'WHERE', POIS MESMO COM O 'OR' ELE AINDA RESTRINGE A BUSCA.

Da forma como vc acha que está correto não haverá restrição do usuário ter acesso ao select se nome_cliente != '[usr_name]'

Veja isso.

[]

Mas a principio da maneira q encontrei naquelas macros, resolveu. Obrigadao pela sua ajuda...