Autor Tópico: Filtro por usuário logado  (Lida 1173 vezes)

Schmoeller

  • Novato
  • *
  • Mensagens: 31
Filtro por usuário logado
« Online: Outubro 30, 2015, 01:35:32 pm »
Boa tarde!

Quero que o usuário só veja os seus registros, a não ser que o usuário seja administrador, dai pode ver todos os registros.
« Última modificação: Outubro 30, 2015, 01:43:32 pm por Schmoeller »

Haroldo

  • Expert
  • *****
  • Mensagens: 6264
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Filtro por usuário logado
« Responder #1 Online: Outubro 30, 2015, 01:48:08 pm »
Temos inúmeros tópicos que falam a respeito disso, já pesquisou aqui?

Schmoeller

  • Novato
  • *
  • Mensagens: 31
Re:Filtro por usuário logado
« Responder #2 Online: Outubro 30, 2015, 01:53:59 pm »
Achei dois tópicos que falavam a respeito, mas não deram certo.

ricardosenaspbr

  • Intermediário
  • ***
  • Mensagens: 101
  • Non scholae, sed vitae discimus
Re:Filtro por usuário logado
« Responder #3 Online: Outubro 30, 2015, 03:10:31 pm »
Vc pode montar um where usuario={usuario}

Mas vai ser bem complicado isso....
atenciosamente,

Ricardo Sena
Analista de T.I.
V. 8.1
"Non scholae, sed vitae discimus"(Não estudamos para a escola, mas para a vida)

Schmoeller

  • Novato
  • *
  • Mensagens: 31
Re:Filtro por usuário logado
« Responder #4 Online: Outubro 30, 2015, 04:30:17 pm »
No sql da minha consulta eu tenho o seguinte código:

SELECT
    ta.cd_apontamento,
    ta.ds_apontamento,
    ta.hr_apontamento,
    ta.cd_cliente,
    ta.cd_projeto,
    ta.cd_atividade,
    ta.login,
    ta.dt_apontamento,
    tc.ds_cliente,
    tp.nm_projeto,
    tas.nm_atividade
FROM
    toth_apontamentos ta
INNER JOIN toth_usuarios_clientes tuc ON ta.cd_cliente = tuc.cd_cliente
INNER JOIN toth_clientes tc ON ta.cd_cliente = tc.cd_cliente
INNER JOIN toth_projetos tp ON ta.cd_projeto = tp.cd_projeto AND tp.cd_cliente = tc.cd_cliente
INNER JOIN toth_atividades tas ON ta.cd_atividade = tas.cd_atividade AND tas.cd_cliente = tp.cd_cliente
WHERE tuc.login = '[usr_login]'

mas dai não sei se preciso fazer algo no sql ou em algum evento.

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1148
  • .....
    • Email
Re:Filtro por usuário logado
« Responder #5 Online: Outubro 30, 2015, 05:34:58 pm »
No sql da minha consulta eu tenho o seguinte código:

SELECT
    ta.cd_apontamento,
    ta.ds_apontamento,
    ta.hr_apontamento,
    ta.cd_cliente,
    ta.cd_projeto,
    ta.cd_atividade,
    ta.login,
    ta.dt_apontamento,
    tc.ds_cliente,
    tp.nm_projeto,
    tas.nm_atividade
FROM
    toth_apontamentos ta
INNER JOIN toth_usuarios_clientes tuc ON ta.cd_cliente = tuc.cd_cliente
INNER JOIN toth_clientes tc ON ta.cd_cliente = tc.cd_cliente
INNER JOIN toth_projetos tp ON ta.cd_projeto = tp.cd_projeto AND tp.cd_cliente = tc.cd_cliente
INNER JOIN toth_atividades tas ON ta.cd_atividade = tas.cd_atividade AND tas.cd_cliente = tp.cd_cliente
WHERE tuc.login = '[usr_login]'

mas dai não sei se preciso fazer algo no sql ou em algum evento.

esta certo , só que dai cada usuário vai ver o seu registro, si tu quer que o administrador veja tudo teria que ficar assim

WHERE ( tuc.login = '[usr_login]' or '[usr_login]' = 'administrador' )

Schmoeller

  • Novato
  • *
  • Mensagens: 31
Re:Filtro por usuário logado
« Responder #6 Online: Novembro 03, 2015, 09:51:15 am »
Eu inclui a linha " AND ta.login = '[usr_login]' " e agora está filtrando certo por usuário logado, agora para o administrador ter acesso a todos os registros eu coloquei assim  " WHERE ( tuc.login = '[usr_login]' AND ta.login = '[usr_login]' or '[usr_login]' = 'administrador' ) " mas não deu certo, eu tenho que definir em algum evento o 'administrador' ?

flaviomorais

  • Avançado
  • ****
  • Mensagens: 348
    • Email
Re:Filtro por usuário logado
« Responder #7 Online: Novembro 03, 2015, 10:51:42 am »
WHERE (
 (tuc.login = '[usr_login]' AND ta.login = '[usr_login]') or ('[usr_login]' = 'administrador' )
)


Eu inclui a linha " AND ta.login = '[usr_login]' " e agora está filtrando certo por usuário logado, agora para o administrador ter acesso a todos os registros eu coloquei assim  " WHERE ( tuc.login = '[usr_login]' AND ta.login = '[usr_login]' or '[usr_login]' = 'administrador' ) " mas não deu certo, eu tenho que definir em algum evento o 'administrador' ?

Schmoeller

  • Novato
  • *
  • Mensagens: 31
Re:Filtro por usuário logado
« Responder #8 Online: Novembro 03, 2015, 10:59:20 am »
Continua aparecendo apenas os registros do usuário logado, mesmo sendo administrador.

flaviomorais

  • Avançado
  • ****
  • Mensagens: 348
    • Email
Re:Filtro por usuário logado
« Responder #9 Online: Novembro 03, 2015, 11:03:47 am »
Tente simplificar a query e ir incrementando passo a passo, para identificar onde é o problema

Continua aparecendo apenas os registros do usuário logado, mesmo sendo administrador.

netsoft

  • Novato
  • *
  • Mensagens: 23
Re:Filtro por usuário logado
« Responder #10 Online: Novembro 03, 2015, 01:55:04 pm »
Faz uma consulta em sua tabela de usuários, retornando se o mesmo é Administrador ou não

se for adm, você tira o where abaixo e se não for voê deixa.

Código: [Selecionar]
WHERE tuc.login = '[usr_login]'

Schmoeller

  • Novato
  • *
  • Mensagens: 31
Re:Filtro por usuário logado
« Responder #11 Online: Novembro 03, 2015, 02:31:00 pm »
Tente simplificar a query e ir incrementando passo a passo, para identificar onde é o problema

Continua aparecendo apenas os registros do usuário logado, mesmo sendo administrador.

O erro aparentemente é no  " OR ('[usr_login]' = 'administrador' )  " pois até o "AND" ele faz tudo certo.

Schmoeller

  • Novato
  • *
  • Mensagens: 31
Re:Filtro por usuário logado
« Responder #12 Online: Novembro 03, 2015, 02:32:55 pm »
Faz uma consulta em sua tabela de usuários, retornando se o mesmo é Administrador ou não

se for adm, você tira o where abaixo e se não for voê deixa.

Código: [Selecionar]
WHERE tuc.login = '[usr_login]'

Desculpe, mas eu não entendi o que deve ser feito, teria como dar um exemplo?

netsoft

  • Novato
  • *
  • Mensagens: 23
Re:Filtro por usuário logado
« Responder #13 Online: Novembro 03, 2015, 02:37:21 pm »
Como vc sabe se o usuário logado é administrador do sistema ?

Schmoeller

  • Novato
  • *
  • Mensagens: 31
Re:Filtro por usuário logado
« Responder #14 Online: Novembro 03, 2015, 02:53:13 pm »
Hum entendi, eu estou usando para testes um usuário que é o administrador e outro que não tem privilégios de administrador, porém os dois retornam apenas os seus registros, mas não entendi porque tirar o where, pois o usuário pode ser ou não administrador, então se tirar o where qualquer usuário pode acessar todos os registros.