Displaying different Reporting content depending on the viewer
Scenario
To create a report that displays different results depending on the user that is viewing the page.
In this example, we are displaying the content only if the user is part of a specific Confluence group (eg. confluence-users
).
The content is only viewable by members of that group, this makes it possible to create dynamic content on a page.
Note: Even if the content is hidden from users that are not part of the authorized group, the users can view the content by editing the page.
Note: To hide or securely encrypt your Confluence data, we recommend using Visibility or Security & Encryption apps.
Result
Â
Recipe
Apps | Reporting for Confluence Server & Data Center |
---|---|
Level | Easy |
Estimated time | 15 Minutes |
Macros | Report Block, User Group Reporter, Text Filter, Report Body, Report Empty |
Suppliers | Global Supplier, User-group Supplier |
Storage format
You can copy and paste this code into the Confluence Source Editor:
<ac:structured-macro ac:macro-id="85c01b60-2227-4412-847e-8c6149bedba2" ac:name="report-block" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="72c0d06e-cc6d-451a-a864-4614cbecc11f" ac:name="user-group-reporter" ac:schema-version="1">
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="b04e2ab2-9da9-42ea-8073-91cd94bfaea2" ac:name="text-filter" ac:schema-version="1">
<ac:parameter ac:name="contains">%global:current user%</ac:parameter>
<ac:parameter ac:name="required">true</ac:parameter>
<ac:parameter ac:name="">user-group:members</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="db1a30c9-98b4-4e88-bade-4aa09f36f4a9" ac:name="text-filter" ac:schema-version="1">
<ac:parameter ac:name="contains">confluence-users</ac:parameter>
<ac:parameter ac:name="required">true</ac:parameter>
<ac:parameter ac:name="">user-group:name</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="17d5efff-61f7-44cd-a44b-6e5af0cd5efc" ac:name="report-body" ac:schema-version="1">
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="9489ef71-25af-4100-ae33-f83e054a1e1a" ac:name="info" ac:schema-version="1">
<ac:rich-text-body>
<p>Testing if me, a confluence-users member, can see this</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="df1a62db-41a9-4838-a84e-42aedd368014" ac:name="report-empty" ac:schema-version="1">
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="a4204713-a921-4cff-a7e8-19bc9f5f7172" ac:name="info" ac:schema-version="1">
<ac:rich-text-body>
<p>Nothing to see here, move along</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
Â
Macro structure
You can recreate the example in the editor view:
Â
Â
Steps
Add a Report Block Macro
Inside the macro, add the User Group Reporter, Report Body, and Report Empty macro.
In the User Group Reporter macro, add two Text Filter macro and set the following:
First Text Filter macro
Key = user-group:members
Required = Enabled
Contains Value = %global:current user%
Second Text Filter macro
Key = user-group:name
Required = Enabled
Contains Value = confluence-users
Set the group(s) that are allowed to view the content in this field.
For the Report Body macro, insert the content you want to show to the group(s).
In the Report Empty macro, add content you want the non-members of the group to view. This is optional.
Â
Line-by-Line Explanation
The Report Block macro is used as a container for the Reporting macros.
User Group Reporter macro is used to query the groups.
The two Text Filter macros are used to set conditions.
The %global:current user% parameter takes the user details that access the page.
Â
Â
Copyright © 2023
• Powered by Scroll Viewport & Atlassian Confluence