notificationsFiltersPreferences
Audit
- Macro ID
- notificationsFiltersPreferences
- Source
- XS
- Type
- Generator
- Classification reason
- The macro has no content: its whole output is a table of the notification filters of a user, given by its parameter and the context, like notifications and mention.
- Status
- Reviewed
- Criteria version
- 15.20
- XWiki version
- 18.8.0
- Audit date
- 2026-10-20
- Auditor
- Compared macros
- notifications mention
Sources
Where to gather the information the criteria are checked against, see Gather the sources.
| Other sources specific to this macro |
|---|
|
| Criterion | Result | Notes |
|---|---|---|
| D1 wording | OK | "Notifications Filters Preferences (deprecated)" is the user's wording for the notification filters, the same words as the Filters section of the notifications administration and of the profile, and the suffix tells the user that the macro is deprecated. The name is long, 45 characters, which Quick Actions cannot read in full, see D4. |
| D2 summary | KO | "Display the preferences of the current user about notification filters." repeats the name and is wrong for the use of the macro with user="XWiki.Admin", which displays the filters of another user that an administrator can edit. The second sentence says that the macro is deprecated in favor of Custom Notifications Filters Preferences or System Notifications Filters Preferences, but gives no link and does not say what the replacement does that this macro does not: the macro shows one table of the filters, where the two replacements split it into system filters and custom filters. |
| D3 category | KO | Notifications, but the macro is only meant for the notification administration and preferences UI, where it has its own entry, not to be inserted in a page, so it should be in the Internal category. Only the Internal and Deprecated categories are hidden from the Quick Actions menu and the Insert Macro dialog, for the users who do not display hidden pages; Notifications keeps it listed for every user. See XWIKI-21063. |
| D4 quick-action | KO | it counts here as the finding of a deprecated macro. Nothing in XWiki Standard calls the macro any more, since XWIKI-18406 replaced it in 2021 with notificationsSystemFiltersPreferences and notificationsCustomFiltersPreferences, yet Quick Actions lists "Notifications Filters Preferences (deprecated)" with its description, and the Insert Macro dialog lists it too. It is the only result of "notification filters" and "filter preferences", the first result of "filters" and "notifications filters", ahead of Notifications System Filters Preferences and Notifications Custom Filters Preferences, which "notifications filters" does not list. A user who types what they want is led to the deprecated macro, and hiding it is the fix, like a deprecated parameter that is still shown, see C9 of the other macros. The synonyms "notification preferences", "watch filters", "email notifications" and "notification settings" give no result. The ID notificationsFiltersPreferences and the full name give no result, since they have more than 30 characters and Quick Actions reads 30 after the slash, a generic limit of the xwiki-slash plugin; "Notifications Filters Pref" finds the macro. The French and German names are the English one, so no other language is checked, and "Notifications Filters Prefer" finds it in both. |
| L1 consistency | OK | compared with notifications and mention: like notifications, no parameter is mandatory, there is no content and the Quick Action inserts the macro right away, with no dialog, unlike mention, whose reference is mandatory, which is by design. |
| L2 doc-parameters | KO | there is no documentation page for the macro. The Documentation status page lists it as Undocumented, "Admin macro, no page found.", so the parameter and its default are documented nowhere. |
| L3 doc-example | KO | no documentation, so no example. The example used for the other criteria is the bare call {{notificationsFiltersPreferences /}} , since no page of XWiki Standard calls the macro: its only call was replaced in the user profile by the two macros that replace it. |
| I1 pattern | OK | compared with children, the reference generator: from the Quick Actions menu, entry "Notifications Filters Preferences (deprecated)" found with "Notifications Filters Pref", the macro is inserted without a dialog and selected, with an empty paragraph after it. From the Insert Macro dialog the Edit Macro dialog opens, whose only field is optional, like children. |
| I2 zero-config | OK | inserting from Quick Actions or from the Insert Macro dialog with the default values gives {{notificationsFiltersPreferences/}} , which shows the table of the filters of the current user in view mode, with its Add filter button and, when the user has no filter, an empty table, with no error. The editor shows the table with a warning, see E1. |
| I3 instant | N/A | |
| I4 cursor | N/A | |
| I5 focus | OK | no parameter is mandatory. |
| E1 wysiwyg | KO | in the editor the macro shows its frame, the description, the Add filter button and the table headers, but the table never shows the filters: it shows the warning "The environment prevents the table from loading data.", right after the insertion and after saving and reopening the page, while view mode loads the table. The live table scripts are not loaded in the editor, like the Live Data of the liveData macro, so a user cannot see in the editor what the macro displays. The macro should show an edit-mode replacement, rather than depend on its scripts. |
| E2 errors | KO | invalid values are accepted silently. {{notificationsFiltersPreferences user="xwiki:XWiki.NoSuchUser"/}} , user="abc" , which is read as XWiki.abc, user="maybe" , user="Main.WebHome" , user="XWiki Admin" , read as a page named "XWiki Admin", and a group, user="XWiki.XWikiAllGroup" , show the same table as a valid user with no message, and its data-user attribute is the unknown user, so the Add filter button and the switches would write to a page that does not exist or is not a user, see the source, lines 1062 to 1079 of the macro, which only check the type of the reference and the right. A change was not tried, to leave the preferences untouched. user="" shows "This macro only allows to handle DocumentUserReference references and you specified a CurrentUserReference reference.", which does not name the parameter and uses developer terms. |
| E3 nesting | KO | in a list item and in a table cell, * {{notificationsFiltersPreferences/}} , the macro shows "The [notificationsFiltersPreferences] macro is a standalone macro and it cannot be used inline." in view mode. In a box it renders. The macro has no content, so the second half of the measure does not apply. |
| E4 inline-support | OK | the macro declares no inline support, and its output is a table with an Add filter button, blocks that cannot be inside a sentence. |
| E5 empty | N/A | E6: the macro has no content. |
| E6 inplace | N/A |
Parameters
| Parameter | C1 clarity | C2 mandatory | C3 defaults | C4 input-assistance | C5 groups | C6 order | C7 alternatives | C8 advanced | C9 technical | C13 constraints | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| user | KO | OK | OK | OK | OK | OK | N/A | OK | OK | OK | C1: the description is "User reference of the user for which to display and manipulate the filter preferences. This parameter is optional, default value is the context user. Note that for using this parameter, the context user needs administrator right on the given user reference." It uses developer terms, "user reference" and "context user", instead of saying that the field empty means the user who views the page, and the sentence about the administration right is hard to follow. C3: the picker opens empty, which means the user who views the page, as the description says, and the value of a call differs on each page, so no value can be preselected. C4: a user picker, which suggests the users matching what the user types, like the user parameter of notificationsEmailPreferences. |
Other notes
Outside the criteria: the hint above the table, "This table lists every filter registered for the current user.", is written in English in the code and not translated, and says "current user" for the table of another user; so are the two messages of the macro, "This macro only allows to handle DocumentUserReference references..." and "You don't have administration right on ...". The message for a user without the administration right was not run, since the audit instance has no non-administrator account with a known password; the source prints the user with escape() on the reference object, which should be checked. The probe logs one 401 and two 404 console errors that come from the live table in the editor, not identified.
KOs and tickets
Every KO needs a ticket covering it, see Report the KOs. One ticket can cover several KOs. Known issues filed for this macro are suggested in italics: link them as existing tickets when they cover the KO.
| KO | Criterion | Existing tickets | New tickets |
|---|---|---|---|
| D2 | D2 summary | XWIKI-25468 | |
| D3 | D3 category | XWIKI-21063 | XWIKI-25468 |
| D4 | D4 quick-action | XWIKI-25468 | |
| L2 | L2 doc-parameters | XWIKI-25468, XINFRA-525 | |
| L3 | L3 doc-example | XWIKI-25468, XINFRA-526 | |
| E1 | E1 wysiwyg | XWIKI-25468 | |
| E2 | E2 errors | XCOMMONS-3847 (partial), XRENDERING-823 (partial), XWIKI-25468 | |
| E3 | E3 nesting | XWIKI-25468 | |
| C1:user | C1 clarity, user | XWIKI-25468 |
Tickets
| Ticket | Origin | KOs covered | KOs partly covered |
|---|---|---|---|
| XWIKI-21063 | Existing | D3 | |
| XCOMMONS-3847 | New | E2 | |
| XRENDERING-823 | New | E2 | |
| XWIKI-25468 | New | C1:user D2 D3 D4 E1 E2 E3 L2 L3 | |
| XINFRA-525 | New | L2 | |
| XINFRA-526 | New | L3 |
Known issues of this macro
No known issue is specific to this macro.
68 more known issues affect every macro: see the Known issues.
Lucas Charpentier