Administrador de Configuração de Função

PortalRoleAdmin é a página de administração para funções do portal: quais funções o portal possui e quais delas um usuário recém-registrado recebe. Ele vem com o framework em ambas as pilhas, então um portal capta melhorias atualizando seus pacotes — a página que você escreve é o portal do papel e o cabeçalho.

O que está na página

Duas grades, cada uma com Novo, Abrir e Excluir. Cada alteração é escrita assim que você salva ou exclui — não há Salvar em nível de página.

  • Funções no portal — um nome e uma descrição, editados em um painel lateral. O que um papel concede não está configurado aqui: ele está vinculado ao nome do papel em código no início, então adicionar um papel o torna assignável em vez de poderoso, e renomear um o desvincula do que concede.
  • Configurações de funções — Qual papel um usuário recém-registrado recebe, e quando — para ninguém, para todo mundo ou para quem corresponde a uma regra que você escreve.

Regras que decidem quem se qualifica

Uma regra é uma consulta FetchXML sobre contact. Quando alguém se registra, o portal restringe a consulta para esse contato e atribui o papel caso o Dataverse retorne. Junções a tabelas relacionadas são respeitadas, e colunas, ordenam e top não fazem diferença na resposta, então uma consulta copiada de uma visualização funciona como está.

No React, a regra é escrita com o construtor de consultas FetchXML, fixado em Contact com agregados desligados, em uma página própria para que o construtor tenha espaço. Run mostra os contatos que a regra corresponde hoje — a única forma de saber se ele seleciona as pessoas que você quis dizer.

No Blazor, a mesma coluna é editada como texto FetchXML; ainda não existe um construtor de consultas Blazor.

Uma regra quebrada falha silenciosamente

Uma regra vazia, que não é válida no FetchXML, é uma consulta agregada ou está enraizada em uma tabela diferente de Contact não corresponde a ninguém. Nada a reporta como erro — a função simplesmente nunca é atribuída. O editor React alerta sobre cada uma dessas coisas acima do construtor enquanto você escreve a regra.

Adicionando-o ao seu portal

Ambos os modelos de projeto já incluem esta página em /RoleConfigurationAdmin, no menu Administrador. Para adicioná-la você mesmo, faça um gate de uma página no SystemAdmin papel e coloque o componente em:

React
Blazor

A página de configuração (React)

configurationUrl abre uma configuração em sua própria página em vez de em um painel lateral. Deixe-a desligada e o painel é usado, o que funciona, mas deixa pouco espaço para o criador de consultas. A página para a qual ela aponta fornece o contexto do registro e o botão Salvar; o próprio formulário é o do framework PortalRoleConfigurationForm:

Funções na web sob autorização aprimorada

Em um portal que executa autorização aprimorada, os usuários recebem papéis web do Power Pages em vez de papéis de portal: o Power Pages concede a cada usuário o papel de segurança Dataverse que ele combina com cada um de seus papéis web, e o que esse papel permite vem das permissões da tabela do site. WebRoleAdmin é o equivalente a PortalRoleAdmin para esse modelo — uma grade de regras, cada uma entregando uma função web para cada novo usuário ou para aquelas que correspondem a uma regra escrita exatamente como acima. As regras estão na solução Power Portals Pro Enhanced Authorization , que exige que Power Pages seja instalado no ambiente.

Ambos os modelos de projeto mostram a página aplicável: o menu de Administração oferece Configuração de Função Web quando a autorização aprimorada está ativada e Configuração de Função quando está desativada. Sua própria navegação pode fazer a mesma escolha com ISecurityModelInfo.IsEnhancedAuthorizationEnabledAsync() no Blazor ou useAuthOptions() no React, ambos respondidos a partir de GET /api/auth/options.

React
Blazor

Os próprios papéis web estão presentes nas Power Pages

Crie funções web e dê permissões de tabela no aplicativo Power Pages Management — essa página decide apenas quem as recebe. Uma função web sem função de segurança pareada não concede nada até que o Power Pages pareie uma, e uma função web pertencente a um site diferente do portal seja pulada; o portal registra ambas. Mudanças de função e privilégio podem levar um ou dois minutos para chegar a um usuário logado.

Referência de API

React Blazor

PortalRoleAdmin Classe

PortalRoleConfigurationForm

React Blazor

PortalRoleConfigurationForm Classe

WebRoleAdmin

React Blazor

WebRoleAdmin Classe

WebRoleConfigurationForm

React Blazor

WebRoleConfigurationForm Classe