You mentioned power apps but not what kind of power app.
If you want to do this in a Canvas App, then the pattern it so simply query all the security groups and / roles a person has been assigned. Then inside your app, you would have to do a check against that security group.
What I do is create either
1) a comma concatenated list of groups for given things as Environment variables. Then query the security groups they are in (there are tons of examples if you search). Then in your expression, in your visible property, do a contains to see if the security group is in the long string
2) use sharepoint or dataverse to store all the security group mappings you have. So you would have a key/value pair which you would then use inside your app.
You would still need to query their security groups and roles, but now you would do a comparison to see if the key/value pair exists
for instance so you have a button
In the visible property of the button you would do something like
CountRows(Filter(MyCollectionOfSecurityRoles/SecurityGroups, Name = SharePoint/DV Name) > 0
This would return true or false and make it visible
FYI this should be in the Power Apps forum not engage.
The strategy above allows you to now hardcode but instead use configuration (which you can change) to set the security group or role value that makes it visible or not.
If these suggestions help resolve your issue, Please consider Marking the answer as such and also maybe a like.
Thank you!
Sincerely, Michael Gernaey