Criar espaços de acesso personalizado dentro de aplicações em PowerApps
Nos últimos meses fui tendo a oportunidade de sublinhar as inúmeras vantagens e facilidades de utilizar o PowerApps como forma a simplificar e automatizar o acesso à informação da empresa por parte dos seus colaboradores. Já vimos que, numa questão de minutos, é então possível criar uma aplicação móvel ligada à origem de dados da sua empresa e distribuí-la imediatamente pelos diferentes membros e equipas. Em certas situações poderá, no entanto, preferir reservar o acesso a alguns dos dados ou funcionalidades da sua aplicação a apenas alguns membros específicos. Neste artigo, irei introduzir algumas breves ideias que o ajudarão a personalizar a interação de diferentes colaboradores, e as suas aplicações.
Segurança ao nível dos dados
Não há dúvida que o PowerApps é uma ferramenta de extrema utilidade para a generalidade das empresas que sofrem com a quantidade de processos de gestão desintegrados, repetitivos e de execução morosa. Se está a ler este artigo, o mais provável é que tenha já sido convencido dos grandes benefícios de utilizar aplicações móveis como forma de substituir e automatizar processos pela cloud, sem necessidade de aprender a programar ou, sequer, de pagar por um serviço adicional (alguns pacotes do Office 365 já trazem licenças com Plano 1 de PowerApps). No entanto, na hora de decidir aplicar recursos ao desenvolvimento de aplicações para a sua empresa, aparecem sempre algumas questões que vão adiando este ímpeto reformista. Uma delas prende-se com o acesso à informação – “Como poderei gerir o acesso às minhas aplicações?” ou “Como controlo a informação visível em cada momento a diferentes colaboradores?” são algumas das questões mais frequentemente levantadas, e cuja resposta é bastante simples, como irei demonstrar.
Pegando então no caso da partilha de aplicações, em momento algum a sua aplicação estará visível a colaboradores com os quais não tenha feito a partilha. Poderá perceber pela imagem acima que, após o desenvolvimento da sua aplicação, que a partilha de aplicações no PowerApps é feita com base nas respetivas contas do Office 365 dos potenciais utilizadores, sendo que poderá definir quais deles têm permissões de administrador ou de membro.
Relativamente aos dados expostos dentro da aplicação, convém ressalvar que o acesso à aplicação não garante por si só um acesso aos dados de forma indiscriminada. O utilizador, ao abrir a aplicação pela primeira vez, terá de validar as suas credenciais de acesso aos dados (que poderão estar alojados no SharePoint, Excel no OneDrive, Google Drive, SQL Server, etc.). Uma vez que a sua aplicação não é mais do que uma simples interface gráfica servindo de ponte entre o utilizador e a origem dos dados, não tendo o utilizador acesso ao local onde os dados estão armazenados (por exemplo, uma pasta no SharePoint), este irá ser confrontado então com apenas informação parcial (no limite, todos os campos e tabelas em branco).
Integrar sistema de permissões do Office 365
Em certas situações, poderá dar-se o caso de ter interesse em partilhar uma aplicação com um conjunto de colaboradores, mas com preferência por filtrar alguns dos dados ou funcionalidades da aplicação e reservá-los a apenas alguns dos utilizadores. Uma vez que todos os utilizadores que acedem à sua aplicação o fazem através das suas credenciais do Office 365, isto permite-lhe programar a sua aplicação para recolher dados sobre o utilizador, e usá-los para personalizar a sua interação com a aplicação.
Na imagem acima, é possível perceber a simplicidade em como conseguimos, com uma única função, retirar informação (neste caso, o nome) do utilizador. Sempre que se liga a uma origem de dados diferente, o PowerApps disponibiliza diferentes conjuntos de funções personalizadas e ajustadas à ligação efetuada. Neste caso, tendo a minha aplicação conectada com o Office 365, consigo utilizar a função MYPROFILE para ter acesso ao nome do utilizador, o departamento, a função, o seu superior, etc. Todas estas informações deverão ter sido registadas aquando a criação da conta do utilizador na plataforma do Office 365 (assumindo que o responsável não se limitou apenas a preencher o campo com o nome…) – o que o PowerApps faz é simplesmente procurar por estes dados e importá-los para a aplicação.
Percebe agora que, com estes dados, facilmente poderemos confrontar o nome, departamento ou senioridade do utilizador com diferentes condições (recorrendo à função IF, um clássico do Excel) para definir quais os utilizadores que irão ter acesso integral ou não a diferentes partes ou componentes da aplicação. No caso da imagem apresenta acima, os utilizadores Eduardo e Nuno estão a utilizar exatamente a mesma aplicação. O facto de estes estarem a ver componentes distintos (botão para administrador) prende-se com o facto de o desenvolvedor (eu) ter colocado uma função IF na propriedade que define a visibilidade daquele botão e que está a condicionar todos os utilizadores cujo nome não seja Eduardo Ribeiro. Esta lógica poderá ser aplicada em muitas outras situações e, obviamente, com condicionantes bastante mais avançados. Irá desta forma poupar algum tempo, face à alternativa de criar variantes da mesma aplicação para diferentes grupos de utilizadores.
Proteger o acesso a diferentes espaços na aplicação com palavras-passe
Em certas situações pontuais, nenhuma das soluções anteriores vai de encontro àquilo que procura. Poderá não ser imediatamente óbvio o porquê de impor credenciais adicionais aos utilizadores, uma vez que estes já têm de fazer login com a sua conta do Office 365, mas em certos casos isto é o mais indicado.
O caso mais comum são as empresas já com alguma dimensão (dezenas ou centenas de funcionários), mas em que nem todos os colaboradores têm associada uma conta no Office 365 (por exemplo, trabalhadores de uma unidade fabril). Imaginemos o caso de uma empresa que procura registar diariamente quais são os seus colaboradores que irão almoçar na cantina nessa semana – em vez de pagar por uma licença para cada colaborador, facilmente poderá ser criada uma conta comum destinada exclusivamente para este efeito. Estes iriam então aceder à aplicação através de um terminal (computador ou tablet fixado, acessível dentro da empresa) com esta mesma conta e, para poder reservar a sua refeição, utilizariam credenciais atribuídas previamente por um responsável.
Através de uma simples tabela (que não terá de estar, necessariamente, num ficheiro Excel), é possível então criar vários nomes de utilizadores e respetivas palavras-passe, e utilizar a função LOOKUPVALUE (em tudo semelhante à função VLOOKUP do Excel) para verificar se a palavra passe inserida corresponde àquele nome de utilizar. Assim, impondo uma condição Verdadeiro/Falso, é possível condicionar certas funcionalidades da aplicação, como marcar o almoço na cantina, com base num simples conjunto de credenciais como este.