This is something I don't think has been talked about, at least I could not find something.
I created an app where I can search employees and add information as needed. Most of our employees have access to SharePoint and I have the Powerapps link linked within the Sharepoint app so anyone with access can see the information contained. There is a lot of confidential information within this app so I have not given permission to anyone. That being said, I am wondering if it is possible to set permissions within the app. What I mean by that is can I make it so employees can only see their profile which is a specific screen within the app. It would also be benefitial if the employee could edit their own information within their profile on another screen. So basically just giving them access to specific screens with thier credentials. Last point is can I set it so managers can only see their specific employees under them along with their own based on permissions set?
Thanks for getting in touch. PowerApps only provides an ability to conviniently access and update the data from the data store. Please do not think of PowerApps as a way to secure your data, data needs to be secured at the datastore level. Here is a link, which might help you to update the permissions on sharepoint -
Hope this helps !
We have a user function (https://powerapps.microsoft.com/en-us/tutorials/function-user/) where you can get the user name, email address of the person who is logged in, so if you were to have a profile page, the profile page could filter on the user name/email of the person.
For showing details about a manager and their direct reports, you can give the office 365 connector a try. Here is a page that describes this connector: https://powerapps.microsoft.com/en-us/tutorials/connection-office365-users/
Hopefully this helps!
In this post, https://powerusers.microsoft.com/t5/PowerApps-Forum/Is-it-possible-to-switch-the-view-as-InfoPath-in..., I check if a user belongs to a specific AD security group and take action based on that. Maybe that can be used in your case?
If you cannot or don't want to use that kind of solution, I'd make a table with security settings and then compare that using User().FullName, just as @cherie suggests. I would not hard code security settings for each user, that will end up being very high maintenance.
This information very helpful thank you! The last thing I am wondering about is if I can make it so those who are employees can only have access to their accounts which it looks like I can do with this feature but I wanted to have it where if you are an admin then the data still shows everything. When I was adding in the equations I was only seeing my information. How can I make it so I can see everything while another person with less permission can only see their's? I am using an excel document as my data sources.
As @BitLord69 suggested, you could either put all the admins in a security group and check if the user belongs to it, or you could create another table in your excel spreadsheet that lists all the admins and use the user function to check if the person who is logged in is in the list. Let me know if you need help with syntax!
I have been looking into the information you all gave me and I just want to make sure I underestand the full process before I start altering my app.
So the app is completed with all the data showing up within the app.
I have a 3 different screens that show employee data.
The first is the search screen:
When the arrow is clicked on and it takes me to a profile screen of that employee I can see more information about them:
I can then edit their profile if I want to.
So after reading the information I am assuming I would click on one of the data areas and adding the equations from Office365 like this: Office365Users.UserProfile(InfoAbout.Text).GivenName which it does change the name of the employee to my name. I am assuming that I can change all the fields to me when I add the equation to the rest of the fields and it will only show my data. On the search screen it changes all the names to my name as well.
so where I am stuck is how to change the equations like I did but then have them recognize that I am an admin. I was told I can add another table in the excel file that says admin and have names, but how do I link that up to the equations so that my data does not replace other data if I am an admin.
Last is telling it what pages not to show for emloyees. When I type in an equation like the one above anyone can still go to the search page. I would like to make its so they cannot see that search page.
In the onStart of your first screen, you can check who is the logged in user and if that user is an admin. If the user is an admin, you navigate to the search page, if the user is not an admin, you navigate to the user's profile page.
Okay so I have tried this:
I am thinking the next step is to create a table in excel that has names of everyone who is supposed to be a User and then have another column that has everyones names who is to be an admin. I then add that data table to the app and then I dont know what to do from there?
I wrote an article on Medium.com https://medium.com/@kcraigo/powerapps-permissions-8dec66218998 about how to limit what your users have access to from the Environment to App.
In the app I basically set a global variable to the current login and then filter the data based on the current login and a status variable if needed.
Hopefully this helps.