Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Restrição de Acessos a uma coluna de uma Pasta HUB

Boa tarde!

Eu preciso de uma ajuda com o controle de acessos.

Sei que tem alguns exemplos, mas sou totalmente leigo o Qlik e jogaram a bucha na minha mão

Meu cenario:

Tenho um APP onde está o orçamento da empresa, e neste app uma pasta chamado Orçamento por Gestor.

Ai tem um campo Gestor, onde está todos os gestores da empresa.

até ontem usavamos o Qlik Desktop, agora migramos para o Qlik Senser Servidor (onde temos o QMC e o HUB).

Gostaria de saber como eu pego esse campo gestor e posso fazer um filtro para que quando um gestor logar no Hub, nessa pasta de Orçamento por Gestor só mostre o orçamento referente a área dele.

O exemplo abaixo peguei de um post aqui no forum.

LOAD * INLINE [

    ACCESS, USERID, CODSETOR

    admin, admin,  *

    user, industrial, 1

    user, comercial, 2

    user, Recursos Humanos, 3

];

Eu entendi que ai ele está atribuindo a cada setor um numero. mas como faço para atribuir esses numeros aos gestores que estão na minha pasta Orçamento por Gestor.

Desde já agradeço.

Labels (1)
9 Replies
marco_almeida
Creator II
Creator II

Olá Thiago.

Pelo que entendi você precisa que um usuário (gestor) visualize apenas informações pertinentes a ele, ocultando informações de outros gestores. Se esse for o seu caso, você precisa usar o recurso de Section Access.

Como funciona: Basicamente você cria uma tabela no app e essa tabela, quando "configurada" se encarrega de filtrar o aplicativo com base na região do usuário. Entenda o section como um filtragem obrigatória do painel.

A estrutura básica de funcionamento é o seguinte:

SECTION Access;

     SECTION:

     LOAD * INLINE [

          NTNAME

          ,ACCESS

          ,REGION

     ];

SECTION Application;

onde:

NTNAME = login do usuário

ACCESS = tipo de usuário (admin|user)

REGION = região de corte (filtragem)


1) Essa tabela SECTION será criada, mas você não conseguirá visualizar no modelo de dados. Porém existirá um relacionamento com a sua tabela de dados. Ou seja, para funcionar você precisa ter um campo REGION no seu modelo de dados onde a filtragem será propagada.

2) A tabela SECTION não precisa ser criada pelo INLINE. Pode ser feito o carreamento de um banco de dados, uma planilha etc.


No seu caso o teu REGION será o campo GESTOR. Então replique o campo GESTOR e chame-o de REGION.

O REGION no INLINE será o valor que está no teu campo GESTOR. Por exemplo:


NTNAME = luiz.roberto

REGION = Luiz Roberto Souza


Caso um usuário "luiz.roberto" tente abrir seu app ele irá fazer a filtragem por "Luiz Roberto Souza".


Como essa filtragem (section) ocorre no momento da sessão, mesmo que um gestor tente visualizar o orçamento de outro, não conseguirá.


Essa tabela SECTION pode ser extendida com outras funcionalidades, mas esse é o básico.


Veja se deu certo e reposte.


Até mais.

Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
Anonymous
Not applicable
Author

Marco Otavio, boa tarde!

Vamos lá. Tenho algumas dúvidas.

Como eu faço essa replicação do Campo GESTOR para REGION.

Como faria esse corte de região (filtragem).

Desculpe, mas sou totalmente leigo na programação do aplicativo. No QMC eu olhei bastante e me virei muito bem, consegui fazer as rules e tudo mais, mas essa parte do HUB..


Desde já obrigado.

marco_almeida
Creator II
Creator II

Replicar é criar o mesmo campo só que com outro nome.

GESTORES:

LOAD

     *

     ,gestor as REGION

FROM TABELA;

Você vai fazer exatamente como eu lhe falei acima. Vai criar a tabela SECTION definindo quem vai acessar o que, igual no exemplo do Luiz.

Esse script é inserido no seu app, não vai no QMC.

Como não tem muito conhecimento de Section aconselho fortemente a criar uma cópia do seu app para não incorrer no risco de perde-lo (já fiz muito isso rs).

Lembrando que a tabela SECTION é como se fosse qualquer outra tabela virtual. Ela deverá obrigatoriamente se relacionar com outra tabela do seu modelo de dados para funcionar corretamente.

Olhe este exemplo:

ESTADO:

LOAD

*

    ,estado_id as REGION

;

LOAD * Inline [

estado_id, estado

1, SP

2, MS

3, TO

4, PR

];

CIDADE:

LOAD * Inline [

cidade_id, cidade, estado_id

1, são paulo, 1

2, campo grande, 2

3, palmas, 3

4, curitiba, 4

5, guarulhos,1

];

// Section Access;

SECTION:

LOAD * Inline [

NTNAME, ACCESS, REGION

luiz.roberto, USER, 1

luciana.maria, USER, 3

rodolfo.pereira, USER, 4

];

// SECTION Application;

Os comando Section Access|Application estão comentados para você poder visualizar. Mas para funcionar não podem estar.

Com esse Script estou dizendo que o luiz.roberto só podem ver informações do estado 1, que é São Paulo. Logo irá ver informações das cidades de São Paulo e Guarulhos. A luciana.maria somente de Tocantins. E assim sucessivamente.

Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
pablolabbe
Luminary Alumni
Luminary Alumni

Aqui tem informações importantes sobre como se configura uma seção de acesso.

https://help.qlik.com/pt-BR/sense/September2017/Subsystems/Hub/Content/Scripting/Security/manage-sec...

Anonymous
Not applicable
Author

Muito obrigado Pablo.

Eu já tinha lido isto dai, mas é que não conheço nada de programação do QLIK Sense mesmo, por isso estou perdido.

Anonymous
Not applicable
Author

Olha, eu fiz um teste mais simples

Section Access;

SECTION:

LOAD * Inline [

NTNAME, ACCESS

CONTROLADORIA, ADMIN

COMERCIAL, USER

];

SECTION Application;


E deu acesso negado, sendo que só fiz isto e tentei logar com o usuário para ir testando por partes.

pablolabbe
Luminary Alumni
Luminary Alumni

NTNAME deve conter dominio\usuario e nao somente usuario

Anonymous
Not applicable
Author

Pablo Labbe.

Bom dia!

Obrigado pela dica, mas ainda deu erro, eu vi num forum em ingles que para qualquer tipo de acesso, seja local ou em rede, agora se deve usar o USERID, no meu caso como é em rede eu coloco USERID e na declaração DOMINIO\USUÁRIO.

Segue o link da discução: session access in qliksense?

Obrigado.

Anonymous
Not applicable
Author

Marco Otavio, bom dia!

Eu fiz o seguinte:

Section Access;

LOAD * Inline [

ACCESS, USERID, REGION

USER,  DOMINIO\CONTROLE,*

USER, DOMINIO\VENDAS, JOAQUIM

USER, DOMINIO\FABRICA, JOSE

ADMIN, DOMINIO\THIAGO.RUBIO,*

];

SECTION Application;

T1:

LOAD *,

      GESTOR AS REGION;

Mas agora para o usuário do controle aparece tudo, o que está certo.

Mas para os demais usuários (vendas e fabrica), não aparece nada.  Eu até abro o aplicativo, mas quando abre não tem nenhuma pasta.

Como eu faço para todos terem acesso ao aplicativo, mas quando o gestor xxx logar, aparecer só os campos referentes ao nome dele que está na tabela GESTOR que eu carrego.

Desculpa fazer essas perguntas que deve ser até básicas, mas estou perdido aqui.

obrigado.