<html>
<body>
<wc-markdown>
<script type="wc-content">
### Steps
1. Get Embed url and Report Id for a report with RLS.
1. Get AccessToken for a User with RLS
1. Load Report
1. Get AccessToken for different user with Different RLS
1. Load Report
* Expectation: Report Data has changed for the new users
* Reality: Report Data has not Changed
</script>
</wc-markdown>
<div>
embedUrl:<input type="text" id="embedUrl">
</div>
<div>
ReportId:<input type="text" id="embedReportId">
</div>
<div>
Access Token:<input type="text" id="accessToken">
</div>
<button onclick="embedPowerBIReport()">Load Report</button>After Report has loaded, Change the AccessToken to a different AccessToken.
<div id="embedContainer"></div>
</body>
<script >
let loadedResolve, reportLoaded = new Promise((res, rej) => { loadedResolve = res; });
let renderedResolve, reportRendered = new Promise((res, rej) => { renderedResolve = res; });
// Get models. models contains enums that can be used.
models = window['powerbi-client'].models;
// Embed a Power BI report in the given HTML element with the given configurations
function embedPowerBIReport() {
// Read embed application token
// let accessToken = EMBED_ACCESS_TOKEN;
let accessToken = document.getElementById("accessToken").value;
// Read embed URL
// let embedUrl = EMBED_URL;
let embedUrl = document.getElementById("embedUrl").value;
// Read report Id
// let embedReportId = REPORT_ID;
let embedReportId =document.getElementById("embedReportId").value;
// Read embed type from radio
let tokenType = 1;
// We give All permissions to demonstrate switching between View and Edit mode and saving report.
let permissions = models.Permissions.All;
// Create the embed configuration object for the report
let config = {
type: 'report',
tokenType: tokenType == '0' ? models.TokenType.Aad : models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: embedReportId,
permissions: permissions,
settings: {
panes: {
filters: {
visible: true
},
pageNavigation: {
visible: true
}
}
}
};
// Get a reference to the embedded report HTML element
let embedContainer = $('#embedContainer')[0];
// Embed the report and display it within the div container.
report = powerbi.embed(embedContainer, config);
// report.off removes all event handlers for a specific event
report.off("loaded");
// report.on will add an event handler
report.on("loaded", function () {
loadedResolve();
report.off("loaded");
});
// report.off removes all event handlers for a specific event
report.off("error");
report.on("error", function (event) {
console.log(event.detail);
});
// report.off removes all event handlers for a specific event
report.off("rendered");
// report.on will add an event handler
report.on("rendered", function () {
renderedResolve();
report.off("rendered");
});
}
</script>
</html>