Custom applications are becoming more common within organizations, because they are getting easier and easier to build. With Microsoft PowerApps, we find we are building all different types of applications – from social apps to business apps paired with Microsoft Flow. We have been able to implement easy-to-use solutions that can be accessed within Microsoft Teams or SharePoint pages on tablets or mobile phones.
A recent document control project had us digging into PowerApps features so that we could apply permissions to the different elements in the app, thereby allowing certain users specific app funcationality. We found a solution that was actually pretty cool: based on the current user, we can use PowerApps connectors, such as Office 365 Users, to pull user profile information and apply logic to show or hide elements.
By using the current users’ profile information, we can mimic a permissions-like control. This is accomplished by comparing the current user to the user that should have permission. This logical test is then applied to buttons and other elements within the app, resulting in showing, hiding, enabling or disabling of controls.
For example, an admin in the document control process may need access to certain tools or have ability to edit anything within the list or library, while others cannot. In this scenario, we will build a specific set of screens that only the admin can access. It’s as simple as setting the button used to navigate to the current screen to only appear when [current user email] = [admin email].
Another example allows users to edit items or files they have created, using the same logic as above, [current user email] = [created by email]. Instead of hiding a button, we set the button to disabled when the logic came back false.
Klarinet Solutions has seen a lot of success in using PowerApps to make powerful, user-friendly internal tools that connect to you pre-existing and new business data. To learn more about how these tools can work for you in your company please reach out to us at 866.211.8191.