PowerApps Portal
1-I created an entity I get the records from the SQL and there is a column called UserEmail in this entity type text.
I want when I user sign in to my portal i want him to see his only records according to UserEmail Field.
My issue is when I selected Associate current portal user it's need a lookupfield and my UserEmail is a textField .
Solved! Go to Solution.
1. Set your trigger, use your entity and email field
2. Get contacts that match that email, apply appropriate filters/sorting if you allow duplicates
3. Check that a result is found - in your "no" section, consider updating a flag or manually creating a Contact and adding
Just use function "length" on the "values" of your list Action - e.g. length(outputs('List_records')?['body/value'])
4. For each result (note my List only retrieves the Top 1 record), update your original entity with the Odata ID
Hi, security in Power Apps Portals works based on a relationship to the Contact record
you need to add a lookup for Contact in your custom entity and use entity permissions to secure your CDS data in Portals
------------
If you like this post, give a Thumbs up. Where it solved your request, Mark it as a Solution to enable other users find it.
Power Apps Portals Super User
If I created a lookup field in my entity I have to fill it's value one by one in all rows in the other hand i have a text type field with the email value i want to use vs portal user login.
Hi @hmedhat,
Everything below assumes you do have an authenticated experience with logged in users.
As Oliver mentioned, you'll still want to create a relationship if you don't want to custom build your views/entity lists (using HTML and Liquid). You won't be able to easily apply a filter otherwise.
However, if you absolutely need to, then you could consider this - note it will only work for Entity Lists, not subgrids:
.entitylist-filter {
display: none;
}
<script>
/* This assumes you're doing this in the template/Copy/etc and can use Liquid... if not, store the email as a value of an input or something similar and retrieve it with the JS */
document.ready(function () {
var $filterInput = $(".entitylist-filter-option-text input");
if ($filterInput.val().length === 0) {
$filterInput.val("{{ user.emailaddress1 }}");
$(".btn-entitylist-filter-submit").click();
}
});
</script>
This will have a wonky user experience, as the user will load the page, have the script run and reload the page again with the entity list filtered. Using a Contact relationship will be the polished and secure implementation. If you don't care about security or user experience, you could just allow the users to type the filters themselves.
As far as having to manually update the lookups, you could easily build a Power Automate flow or Excel macro (among many other standard options) to handle this on an as-needed basis. If you're not willing to do this little bit of work, I can guarantee you won't want to build a custom entity list from scratch: it's a lot of work.
I hope this helps,
Justin
Hi @justinburch ,
I found that you have posted same issue in our Community, please check my response within the following thread:
I also agree with @justinburch 's thought almost. The Custom JavaScript code could also achieve your needs. Please try above solutions, then check if it could help in your scenario.
Regards,
can you please tell me how can i create a flow for this lookup records? @justinburch
Hi @hmedhat,
It would be something like the following:
This is very basic and without screenshots, but I'm hoping it explains the concept.
1. Set your trigger, use your entity and email field
2. Get contacts that match that email, apply appropriate filters/sorting if you allow duplicates
3. Check that a result is found - in your "no" section, consider updating a flag or manually creating a Contact and adding
Just use function "length" on the "values" of your list Action - e.g. length(outputs('List_records')?['body/value'])
4. For each result (note my List only retrieves the Top 1 record), update your original entity with the Odata ID
This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.
Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.