Perfis e Níveis de Acesso

Configurando os níveis de acesso da maneira que você deseja.

O que são Níveis de Acesso no Jestor?

Nem todo usuário precisa ser igual.

Às vezes, você pode querer restringir o que eles podem ver ou o que eles podem fazer em seu bufão. Por exemplo, talvez nem todos em sua empresa devam ter acesso a dados financeiros, ou talvez você queira convidar clientes para seu Jestor, mas restringir o que eles podem ver de forma que eles tenham acesso apenas a tabelas e registros que os envolvam diretamente.

A coisa sobre o nível de acesso é que eles podem ser infinitamente diferentes em seus usos, então faz sentido que você possa configurar um nível de acesso da maneira que deseja. Para isso, o Jestor possui a área Perfis.

Como configurar Perfis e Níveis de Acesso no Jestor?

Para criar um Perfil, acesse a Área do Desenvolvedor e clique em Perfis e depois em +Criar novo perfil. Dê um nome ao seu novo perfil e pressione Criar.

📘

Nível de acesso padrão

Um perfil recém-criado virá com um arranjo padrão de permissões onde um usuário poderá ver tudo, mas não poderá gerenciar usuários ou criar tabelas e painéis.

Como definir as regras de perfis no Jestor?

Você pode definir muitas coisas importantes na configuração do perfil. Vamos rever cada parte mais tarde, mas primeiro, aqui está um exemplo comentado de um perfil:

{
    "manage_users": 0, //can't add new users or change access levels
    "create_table": 0, //can't create new tables 
    "create_dashboard": 0, //can't create new dashboards
    "tables_enabled": {
        "tasks": { //can see the Tasks table
            "data": [ //the Tasks table will be filtered with the conditions below
                {
                    "field": "owner",
                    "reference": "id_user" //only shows records in which the user is tagged as owner
                },
                { //AND
                    "field": "status",
                    "operator": "!=",
                    "value": "Done" // only shows records with status different from "Done"
                }
            ],
            "fields_excluded": [
                "request_date" //can't see the Request Date field
      ],
            "fields_readonly": [
                "client", //can see the Client field, but not edit
                "priority" //can see the Priority field, but not edit
            ],
            "manage_structure": 0, //can't create/edit/delete fields 
            "can_delete": 0, //can't delete records
            "can_create": 1 //can create records 
        },
        "reminders": { //can see the Reminders table 
            "*": "*" //can see everything and do anything on the Reminders table
        }
    },
    "tables_disabled": [], //no specific table disabled
    "pages_enabled": {}, //no specific page disabled
    "pages_disabled": [], //no specific page disabled
    "dashboards_enabled": {  
    "*": "*" //can see every dashboard
  },
    "dashboards_disabled": [
    "marketing_kpis" //except for Marketing KPIs
  ],
  "default_tabs": [ //menu config on first login
        {
            "id": "tabs", //on the Tabs section 
            "label": "Tabs", //that will appear as "Tabs" for the user
            "items": [ //the following tabs will appear:
                {
                    "object": "tasks", //table Tasks
                    "label": "Tasks", //that will appear as "Tasks" for the user
                    "type": "board" //with the kanban view enabled
                },
                {
                    "object": "reminders", //table Reminders
                    "label": "Reminders", //that will appear as "Reminders" for the user
                    "type": "object" //as a table
                },
        {
                    "object": "customer_support", //dashboard Customer Support
                    "label": "CS", //that will appear as "CS" for the user
                    "type": "dashboard" //as a dashboard
                }
            ]
        } 
  ]
}

Há muito o que descompactar aqui, então vamos na ordem:

  • manage_users: capacidade de adicionar novos usuários e alterar os níveis de acesso dos usuários. Pode ser verdadeiro/1 ou falso/0.
  • create_table: capacidade de criar uma nova tabela. Pode ser verdadeiro/1 ou falso/0.
  • create_dashboard: capacidade de criar um novo painel. Pode ser verdadeiro/1 ou falso/0.
  • tables_enabled: lista de tabelas às quais o usuário terá acesso. Você deve passar não apenas o nome da API da tabela, mas alguns parâmetros adicionais:
    • dados: filtros para definir o que o usuário poderá ver. Para todo o conjunto de operadores válidos, verifique a lista de filtros em https://docs.jestor.com/reference#list-records.
    • fields_excluded: lista de campos que o usuário não poderá ver.
    • fields_readonly: lista de campos que o usuário poderá ver, mas não editar.
    • manage_structure: capacidade de criar/editar/excluir campos. Pode ser verdadeiro/1 ou falso/0.
    • can_delete: capacidade de excluir registros. Pode ser verdadeiro/1 ou falso/0.
    • can_create: capacidade de criar registros. Pode ser verdadeiro/1 ou falso/0.
  • tables_disabled: lista de tabelas às quais o usuário não terá acesso.
  • pages_enabled: lista de páginas às quais o usuário terá acesso.
  • pages_disabled: lista de páginas às quais o usuário não terá acesso.
  • dashboards_enabled: lista de painéis aos quais o usuário terá acesso.
  • dashboards_disabled: lista de painéis aos quais o usuário não terá acesso.
  • default_tabs: disposição do menu no primeiro login do usuário. Você terá que passar os seguintes argumentos aninhados:
    • seções: cada seção do menu será composta por:
      id: uma identificação para a seção.
      label: como a seção aparecerá no menu.
      itens: lista de tabelas/páginas/painéis que estarão dentro da seção. Para esses itens, você terá que passar os seguintes argumentos:
      objeto: o nome da API da tabela/página/painel.
      rótulo: como a tabela/página/painel aparecerá no menu.
      tipo: o tipo de item, como objeto (para tabelas em forma de lista), quadro (para tabelas com visualização kanban ativada), painel ou página.

As restrições são mais fortes que as permissões

Lembre-se sempre: uma restrição anulará as permissões. O que isso significa é que mesmo que você diga que um usuário tem acesso a tudo, se você bloquear uma tabela específica, eles não terão acesso a ela. Da mesma forma, se você disser que um usuário não pode ver nenhuma tabela, não importa se você conceder a ele permissão para a tabela Tarefas: eles não terão acesso a ela.

Assim, por exemplo, o perfil poderá ver tudo, exceto as tabelas de contas a pagar e contas a receber.

{
    "manage_users": 0, 
    "create_table": 0, 
    "create_dashboard": 0,
    "tables_enabled": {
        "*": "*" 
    },
    "tables_disabled": [
        "payables",
        "receivables"
    ], 
    "pages_enabled": {
        "*": "*" 
    }, 
    "pages_disabled": [], 
    "dashboards_enabled": { 
        "*": "*"
    },
    "dashboards_disabled": [
    ]
}

E o perfil abaixo não poderá ver nenhuma tabela, apesar de ter "Tarefas" em tables_enabled.

{
    "manage_users": 0, 
    "create_table": 0, 
    "create_dashboard": 0,
    "tables_enabled": {
        "tasks": "*" 
    },
    "tables_disabled": [
        "*"
    ], 
    "pages_enabled": {
        "*": "*"
    }, 
    "pages_disabled": [], 
    "dashboards_enabled": { 
        "*": "*"
    },
    "dashboards_disabled": [
    ]
}

Sempre verifique essas regras e use-as a seu favor 🧙‍♂️


What’s Next