Conceder dinamicamente permissões de utilização

Tradução automática de Deepl

Seguindo a capacidade de utilizar o seu próprio sistema de gestão de utilizadores finais e o SET USER ALIAS pode estar a perguntar-se como pode gerir as permissões de utilizador final sem criar múltiplas contas de utilizador 4D. Continue a ler porque este lançamento de funcionalidades tem a resposta!

Os programadores 4D necessitam frequentemente de gerir os utilizadores finais com o seu próprio sistema de directórios(por exemplo, desde um desenvolvimento interno até ao externo com LDAP ou SSO). Uma solução era criar tantas contas de utilizadores 4D quantos os direitos, depois mudar de uma para outra.

4D v18 R4 torna as coisas mais intuitivas, permitindo-lhe definir os direitos dos utilizadores com grupos … dinamicamente.

A forma mais fácil de o fazer é criar uma conta de utilizador por defeito, sem filiação em grupo:

Depois pode criar um grupo para cada direito que queira gerir.

blank

Em tempo de execução, ainda pode usar o comando SET USER ALIAS para definir o nome do utilizador para que apareça em todo o lado na base de dados.

Agora com o novo comando SET GROUP ACCESS, pode também definir dinamicamente a filiação em grupo.

Note que estes dois comandos não estão disponíveis no lado do servidor.

Aqui está um exemplo de código executado num cliente remoto após autenticação personalizada do utilizador:

// Set my own user field as alias
SET USER ALIAS([MyUserTable]Name)

// Set user groups following rights
C_COLLECTION ($userGroups)
$userGroups :=New collection
If([MyUserTable]4DWriteProAccess)
$userGroups .push("4D Write Pro")
End if
If ([MyUserTable]4DViewProAccess)
$userGroups .push("4D View Pro")
End if
SET GROUP ACCESS ($userGroups)

Se desejar, pode definir o acesso do grupo de utilizadores actual a nenhum:

SET GROUP ACCESS(New collection)

Pode repor o acesso do grupo de utilizadores actual ao modo como é armazenado no ficheiro de directório:

SET GROUP ACCESS

O novo comando Get group access permite-lhe recuperar a actual adesão ao grupo de utilizadores:

SET GROUP ACCESS(New collection("4D View Pro"; "4D Write Pro"))

$collection :=Get group access
// $collection contém ["4D View Pro", "4D Write Pro"]

Todos os acessos de grupo dados não afectam o directório utilizador/grupo.

Agora é a sua vez de o experimentar. Administre os seus utilizadores e grupos dinamicamente … como quiser!

Avatar
• Proprietário do produto - Damien Fuzeau entrou ao time 4D Product em fevereiro de 2019. Como Proprietário do Produto, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Damien é formado em engenharia de software pela Universidade de Nantes. Trabalhou mais de 23 anos em sua empresa anterior, primeiro como desenvolvedor (descobrindo 4D em 1997), e mais tarde como gerente de engenharia e arquiteto de software. Essa empresa é um Partner OEM de 4D e lançou softwares empresariais baseados em 4D para milhares de usuários em centenas de servidores. Portanto Damien está acostumado ao desenvolvimento e lançamento de 4D em contextos multilinguais.