cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
tianaranjo
Level 8

DisplayMode based on user

Greetings, 

 

I have a feedback form and I would like the Status card display as with edit option for managers or as view only if not a manager.  I have added a list from SharePoint with the manager names in a screen that will not be visible to the user.  Can you please advise on the function for the Status DisplayMode?

Thank you.

1 ACCEPTED SOLUTION

Accepted Solutions
JRaasumaa
Level 10

Re: DisplayMode based on user


@Anonymous wrote:

To check whether the current user is in that list of manager names, you can use the in operator.

Reference: https://docs.microsoft.com/en-us/powerapps/functions/operators#in-and-exactin-operators

 

So, you can do something like this:

If( User().FullName in ManagerNames,
    DisplayMode.Edit,
    DisplayMode.View
)

Although, I don't suggest using DisplayMode.View. Using DisplayMode.Disabled is easier since you can customize formatting easier that way. 


 

For performance reasons you may want to set the User() to a variable to decrease the number of calls to that function. I know there are other posts out there explaining all the reasons why but by doing this it speeds up the app considerably.

 

For example on page Visible on your Home screen run:

Set(CurrentUser, User())

Then anytime you ever need to find the user just simply do a CurrentUser.FullName etc. That way you are only calling the User() function once.

 

Otherwise @Anonymous has the right idea, you can display, hide, disable just about anything based on username using the code he supplied.

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

Re: DisplayMode based on user

To check whether the current user is in that list of manager names, you can use the in operator.

Reference: https://docs.microsoft.com/en-us/powerapps/functions/operators#in-and-exactin-operators

 

So, you can do something like this:

If( User().FullName in ManagerNames,
    DisplayMode.Edit,
    DisplayMode.View
)

Although, I don't suggest using DisplayMode.View. Using DisplayMode.Disabled is easier since you can customize formatting easier that way. 

JRaasumaa
Level 10

Re: DisplayMode based on user


@Anonymous wrote:

To check whether the current user is in that list of manager names, you can use the in operator.

Reference: https://docs.microsoft.com/en-us/powerapps/functions/operators#in-and-exactin-operators

 

So, you can do something like this:

If( User().FullName in ManagerNames,
    DisplayMode.Edit,
    DisplayMode.View
)

Although, I don't suggest using DisplayMode.View. Using DisplayMode.Disabled is easier since you can customize formatting easier that way. 


 

For performance reasons you may want to set the User() to a variable to decrease the number of calls to that function. I know there are other posts out there explaining all the reasons why but by doing this it speeds up the app considerably.

 

For example on page Visible on your Home screen run:

Set(CurrentUser, User())

Then anytime you ever need to find the user just simply do a CurrentUser.FullName etc. That way you are only calling the User() function once.

 

Otherwise @Anonymous has the right idea, you can display, hide, disable just about anything based on username using the code he supplied.

View solution in original post

Helpful resources

Announcements
thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Power Platform World Tour

Find out where you can attend!

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

Top Kudoed Authors (Last 30 Days)
Users online (4,716)