Berechtigungsabhängige Felder in PowerApps

Eine typische Anforderung von Workflows und Formularen ist, berechtigungsabhängige Felder darzustellen, z.B. eine Anforderung benötigt eine Genehmigung, aber der Button darf nur eine bestimmte Person drücken.

Steuerung per DisplayMode

Um einen Button oder jedes andere Steuerelement zu kontrollieren, ob dies nur angezeigt oder auch bearbeitet werden darf, bedient man sich der Eigenschaft DisplayMode. Im einfachsten Fall steht das auf:

DisplayMode.Edit

Gruppenmitgliedschaft auslesen

Als erstes muss eine Verbindung „Office365Groups“ hinzugefügt werden:

Anschließend kann man den aktuell angemeldeten Benutzer vergleichen, ob dieser in der Gruppe Mitglied ist:

Lower(User().Email) in Lower(Office365Groups.ListGroupMembers(var_Stage1GroupID).value.userPrincipalName)

Dies gibt entweder true oder false zurück und kann mit einem If Statement überprüft werden.

Hintergrund zum Thema UPN und Lower hier: PowerApps User().Email mit UPN vergleichen

DisplayMode Berechtigunsgesteuert

Damit nun das jeweilige Feld Berechtigungsabhängig angezeigt wird, könnte der Code so aussehen. In diesem Beispiel wird noch das Formular „EditRequest_Form“ geprüft und grundsätzlich nur eine Bearbeitung zugelassen, wenn es bearbeitet wird. Außerdem wird zusätzlich noch abhängig von einem Request Status „Approval“ oder „Ask for revision“ die Bearbeitung zugelassen. Ansonsten ist die Bearbeitung deaktiviert.

If(
    EditRequest_Form.DisplayMode = DisplayMode.View,
    Disabled,
    Or(First(DataCardValue_Status.SelectedItems).Value="Approval - Stage1",First(DataCardValue_Status.SelectedItems).Value="Ask for revision - Stage1") && 
If(!IsBlank(var_Stage1GroupID),Lower(User().Email) in Lower(Office365Groups.ListGroupMembers(var_Stage1GroupID).value.userPrincipalName)),
    DisplayMode.Edit,
    DisplayMode.Disabled
)

Fazit

Die Steuerung per Gruppen ermöglicht es, Steuerelemente abhängig der Rechte bzw. der Rolle anzuzeigen. Außerdem können über die Gruppenmitgliedschaften auch ein Workflow gerichtet werden (z.B. Genehmigungsstufen). In weiterer Folge ist die Wartung per AD Gruppenmitgliedschaften leichter und fest programmierten Rollen in der App vorzuziehen.

0 0 votes
Article Rating
Teilen

Autor: Dennis Hobmaier

Dennis Hobmaier ist Strategic Consultant bei AvePoint Deutschland GmbH. Er hat über 15 Jahre Erfahrung in IT-Enterprise Umgebung aller Größenordnungen und bedient Kunden aus den unterschiedlichsten Branchen. Als MCSE SharePoint hat er tiefgreifende Kenntnisse in den Bereichen Microsoft Active Directory, Windows, Azure, SharePoint und Office 365. Gerne teilt er seine Projekterfahrung mit Ihnen.

Subscribe
Notify of
guest

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .

0 Comments
Inline Feedbacks
View all comments