4b3ad1e048a683df1f7a70af6ed3626af44561ba
Security.md
| ... | ... | @@ -9,8 +9,8 @@ Type of security|Example|Implementation Details |
| 9 | 9 | [User Driven Report Sharing](#ReportSharing)|A user can save a report and decide if they want other users to see this report. They can also mark a report read-only meaning it can be viewed but not saved over.|[[Basic Report Sharing]] [[CurrentUserIsAdmin]] [[ReportsPath]] [[Read-Only & Shared Checkboxes]] |
| 10 | 10 | [Custom Report Control](#ReportControl)|Different departments can see different base reports.|[[VisibleDataSources hides reports for non-accessible datasources]] [[ReportsList may be overridden]] [[Storing Reports]] [[ReportsPath]] |
| 11 | 11 | [Overwriting and Deleting Reports](#DeletingReports)|Users can load shared or base reports, but should not be able to delete them or overwrite them.|[[AllowOverwritingReports]] [[AllowDeletingReports]] [[CurrentUserIsAdmin]] |
| 12 | -[[Altering Capabilities by Role]]|Only power users should see the modify report button on the report viewer. Others will only access the report viewer.|[[ShowDesignLinks]] [[ShowModifyButton]] [[AllowOverwritingReports]] [[ShowAdminButton]] |
|
| 13 | -[[Field/Record or Tenant Level Security]]|Salespeople look at the same report but see different data based on their territory and credentials. In a multi-tenant environment, reports and data for each customer, group, or tenant should be isolated.|PreExecuteReportSet - [[Hidden Filters]] [[ProcessEqualsSelectList]] [[Field & Record Level Security]] |
|
| 12 | +[Altering Capabilities by Role](#AlteringCapabilities)|Only power users should see the modify report button on the report viewer. Others will only access the report viewer.|[[ShowDesignLinks]] [[ShowModifyButton]] [[AllowOverwritingReports]] [[ShowAdminButton]] |
|
| 13 | +[Field/Record or Tenant Level Security](#TenantSecurity)|Salespeople look at the same report but see different data based on their territory and credentials. In a multi-tenant environment, reports and data for each customer, group, or tenant should be isolated.|PreExecuteReportSet - [[Hidden Filters]] [[ProcessEqualsSelectList]] [[Field & Record Level Security]] |
|
| 14 | 14 | |
| 15 | 15 | ###<a name="Login">Login Security</a> |
| 16 | 16 | |
| ... | ... | @@ -32,7 +32,7 @@ The method will need to be called from your login process with the following lin |
| 32 | 32 | Izenda.AdHoc.AdHocSettings.AdHocConfig.PostLogin() |
| 33 | 33 | ``` |
| 34 | 34 | |
| 35 | -###<a href="DataSources">Data Sources</a> |
|
| 35 | +###<a name="DataSources">Data Sources</a> |
|
| 36 | 36 | |
| 37 | 37 | The API allows control over which data sources a user sees based on their credentials. In the following example, members of the "Sales" role would see additional data sources that normal users would not. Any reports that utilize these data sources would only be visible to members of the sales role. |
| 38 | 38 | |
| ... | ... | @@ -54,7 +54,7 @@ The method will need to be called from your login process with the following lin |
| 54 | 54 | Izenda.AdHoc.AdHocSettings.AdHocConfig.PostLogin() |
| 55 | 55 | ``` |
| 56 | 56 | |
| 57 | -###<a href="ReportSharing">User Driven Report Sharing</a> |
|
| 57 | +###<a name="ReportSharing">User Driven Report Sharing</a> |
|
| 58 | 58 | |
| 59 | 59 | Once the login security is implemented, users can set the shared and read only status of a report. If a report is shared, other members of that tenant will be able to see it. If it is marked read-only, users will be able to load the report, but any modifications will need to be saved as a different report name. These limitations do not apply to users with admin rights enabled via CurrentUserIsAdmin. |
| 60 | 60 | |
| ... | ... | @@ -67,7 +67,7 @@ public override void PostLogin() |
| 67 | 67 | |
| 68 | 68 | **This is a screen shot of the Misc tab in the Report Designer showing the "Shared" & "Read Only" checkboxes that a user can select on a per report basis.** |
| 69 | 69 | |
| 70 | -###<a href="ReportControl">Custom Report Control</a> |
|
| 70 | +###<a name="ReportControl">Custom Report Control</a> |
|
| 71 | 71 | |
| 72 | 72 | To apply additional constraints to which users see what reports, it is necessary to override the ListReports method. See Report Management for additional details. |
| 73 | 73 | |
| ... | ... | @@ -76,7 +76,7 @@ public override Izenda.AdHoc.ReportInfo[] ListReports() |
| 76 | 76 | { Return filtered list} |
| 77 | 77 | ``` |
| 78 | 78 | |
| 79 | -###<a href="DeletingReports">Overwriting and Deleting Reports</a> |
|
| 79 | +###<a name="DeletingReports">Overwriting and Deleting Reports</a> |
|
| 80 | 80 | |
| 81 | 81 | The API allows control of deleting or modifying reports. Reports can be accessed as Read-Only and can not be modified or deleted. |
| 82 | 82 | |
| ... | ... | @@ -88,7 +88,7 @@ The API allows control of deleting or modifying reports. Reports can be accessed |
| 88 | 88 | } |
| 89 | 89 | ``` |
| 90 | 90 | |
| 91 | -###Altering Capabilities by Role |
|
| 91 | +###<a name="AlteringCapabilities">Altering Capabilities by Role</a> |
|
| 92 | 92 | |
| 93 | 93 | The API allows for over a hundred features of Izenda reports to be hidden or altered based on the user's role. All settings get applied on a per-user basis. |
| 94 | 94 | The following code applies properties like the connection string, where reports are stored and visibility of the modify button modify button based on the user. |
| ... | ... | @@ -117,7 +117,7 @@ The method will need to be called from your login process with the following lin |
| 117 | 117 | Izenda.AdHoc.AdHocSettings.AdHocConfig.PostLogin() |
| 118 | 118 | ``` |
| 119 | 119 | |
| 120 | -###Field/Record or Tenant Level Security |
|
| 120 | +###<a name="TenantSecurity">Field/Record or Tenant Level Security</a> |
|
| 121 | 121 | |
| 122 | 122 | Many applications limit users to specific records based on their credentials. The HiddenFilters API Setting may be used to add hidden filters to reports which limit the results based on the user, their credentials and their tenant. In this example, anyone reporting on the AcmeWidgetSales view will be limited to data in their TerritoryID. |
| 123 | 123 |