0 Votes

Wiki source code of Macros

Last modified by Ryan C on 2025/05/12 05:00

Show last authors
1 {{velocity output="false"}}
2 #**
3 * This macro is used to display the rights of a given entity (wiki, space, page)
4 *
5 * @param $rules the list of security rules to be displayed
6 * @param $entityReference the EntityReference for which the rights are displayed
7 *#
8 #macro (displayEntityRights $rules $entityReference)
9 #set ($groupRulesNormalized = $services.security.rights.getGroupRulesNormalized($rules))
10 #set ($organizedGroupRules = $services.security.rights.organizeRulesBySubjectAndState($groupRulesNormalized))
11 #set ($userRulesNormalized = $services.security.rights.getUserRulesNormalized($rules))
12 #set ($organizedUserRules = $services.security.rights.organizeRulesBySubjectAndState($userRulesNormalized))
13 #####
14 (% class="entity-rights-container" %)
15 (((
16 #if ("$!entityReference" != '')
17 #if ($entityReference.type == 'WIKI')
18 ==$services.localization.render('page.rights.viewer.globalRightsConfiguration')==
19 #elseif($entityReference.type == 'SPACE')
20 #set ($space = "$entityReference.toString().replace('Space ', '')")
21 ==$services.localization.render('page.rights.viewer.pageAndChildrenRightsConfiguration', [$space])==
22 #else
23 ==$services.localization.render('page.rights.viewer.currentPageRightsConfiguration', [$entityReference])==
24 #end
25 #end
26 #if ($organizedGroupRules.isEmpty() && $organizedUserRules.isEmpty())
27 $services.localization.render('page.rights.viewer.rights.noRightsDefinedForEntity')
28 #else
29 #if(!$organizedGroupRules.isEmpty())
30 === $services.localization.render('page.rights.viewer.groups') ===
31
32 #displayRightsTable($organizedGroupRules 'group')
33 #end
34 #if(!$organizedUserRules.isEmpty())
35 === $services.localization.render('page.rights.viewer.individualUsers') ===
36
37 #displayRightsTable($organizedUserRules 'user')
38 #end
39 #end
40 )))
41 #end
42 #**
43 * This macro is used to display a list of security rule in a table
44 *
45 * @param $rules the list of security rules to be displayed
46 * @param $subjectType the type of the rules subjects (group/user)
47 *#
48 #macro (displayRightsTable $rules $subjectType)
49 #set ($translationKeyPrefix = 'page.rights.viewer.rights.table')
50 <table>
51 <tr>
52 <th>$services.localization.render("${translationKeyPrefix}.${subjectType}Column")</th>
53 <th>$services.localization.render("${translationKeyPrefix}.allowedRightsColumn")</th>
54 <th>$services.localization.render("${translationKeyPrefix}.deniedRightsColumn")</th>
55 </tr>
56 #foreach ($entry in $rules.entrySet())
57 #set ($subjectReference = $entry.key)
58 <tr>
59 <td>
60 #if ($subjectType == 'group')
61 #displayGroup($subjectReference)
62 #else
63 #displayUser($subjectReference) <span class="user-id">($subjectReference.name)<span>
64 #end
65 </td>
66 #foreach($rights in [$entry.value.left.rights, $entry.value.right.rights])
67 <td>
68 #if("$!rights" != '' && $rights.size() > 0)
69 $!stringtool.join($rights, ', ')
70 #else
71 $services.localization.render('page.rights.viewer.rights.table.nd')
72 #end
73 </td>
74 #end
75 #end
76 </table>
77 #end
78 {{/velocity}}