我想要创建一个具有几个条件的自定义登录表单。
下面是这样的场景:当用户登录应用程序时,PowerApps只根据他们的位置显示屏幕。例如:
我已经在数据源上创建了一个包含名称、电子邮件、密码和位置列的表。在画布应用程序上:
关于button1:我在OnSelect事件上设置了一个函数
If(LookUp('MyDataSource', Email = TextInput1.Text, Password)=TextInput2.Text, Nagivate(StaffScreen,None))
此操作只会将用户带到人员屏幕上。
如何解决这个问题?
发布于 2020-10-28 06:18:25
建议:您可以为Azure AD中的每一类用户设置/创建不同的组,并使用AD连接器使每个用户有效并导航到适当的屏幕。
发布于 2020-10-28 15:23:32
我会避免管理一个表的密码,等等。这增加了不必要的复杂性。用户已经必须使用他们的Active凭据登录PowerApps。利用Active属性或Microsoft属性。
一种方法是关闭Microsoft中列出的JobTitle
,您可以使用PowerApps中的Office365Users
Connector实现这一点。
OnStart
Set(varJobTitle,
First(
Office365Users.SearchUserV2(
{
searchTerm:User().Email
}
).value.JobTitle
).JobTitle
)
第一个屏幕上的“登录”按钮的OnSelect
:
If(
varJobTitle = "Staff",
Set(varUserType, "user");
Navigate(scrStaff, Fade),
varJobTitle = "Supervisor",
Set(varUserType, "admin");
Navigate(scrSupervisors, Fade)
<etc.>
)
您也可以将其调整到JobTitles
的组中,例如:
If(
Or(
varJobTitle = "Staff",
varJobTitle = "Helper",
varJobTitle = "Deckhand"
),
Set(varUserType, "user");
Navigate(scrStaff, Fade),
Or(
varJobTitle = "Supervisor",
varJobTitle = "Manager",
varJobTitle = "Director"
),
Set(varUserType, "admin");
Navigate(scrSupervisors, Fade)
<etc.>
)
然后,添加一个将管理员导航到scrStaff
.
scrStaff
的按钮,并将Visible
属性设置为If(varUserType = "admin", true, false)
,该按钮将管理员导航到scrSupervisors
.很多方法来完成你的目标。相应地进行调整。
https://stackoverflow.com/questions/60334874
复制相似问题