Incorporate MSC2209 (notifications
auth rules)
MSC: https://github.com/matrix-org/matrix-doc/pull/2209 The changes are slightly difficult to word without dumping the text in and playing a game of spot the difference, so we now use our pre-existing pygments support to render a representation of the difference. The difference is shown in markdown-like format instead of RST for ease of understanding. It's also not rendered HTML for largely complexity reasons.
This commit is contained in:
parent
a1324aa9dc
commit
74c51b05a4
3 changed files with 116 additions and 0 deletions
83
scripts/css/pygments.css
Normal file
83
scripts/css/pygments.css
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
/*
|
||||||
|
Original styles generated from:
|
||||||
|
pygmentize -f html -S colorful -a pre.code > ./scripts/css/pygments.css
|
||||||
|
|
||||||
|
Rules for which we don't want the syntax highlighter to kick in are commented
|
||||||
|
out at the bottom.
|
||||||
|
|
||||||
|
Windows users: if you regenerate this file, you'll need to re-save it as utf-8
|
||||||
|
to make docutils happy.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* DIFFS */
|
||||||
|
pre.code .gd { color: #A00000 } /* Generic.Deleted */
|
||||||
|
pre.code .gi { color: #00A000 } /* Generic.Inserted */
|
||||||
|
|
||||||
|
/* UNUSED */
|
||||||
|
/*pre.code .hll { background-color: #ffffcc }*/
|
||||||
|
/*pre.code { background: #ffffff; }*/
|
||||||
|
/*pre.code .c { color: #888888 } !* Comment *!*/
|
||||||
|
/*pre.code .err { color: #FF0000; background-color: #FFAAAA } !* Error *!*/
|
||||||
|
/*pre.code .k { color: #008800; font-weight: bold } !* Keyword *!*/
|
||||||
|
/*pre.code .o { color: #333333 } !* Operator *!*/
|
||||||
|
/*pre.code .ch { color: #888888 } !* Comment.Hashbang *!*/
|
||||||
|
/*pre.code .cm { color: #888888 } !* Comment.Multiline *!*/
|
||||||
|
/*pre.code .cp { color: #557799 } !* Comment.Preproc *!*/
|
||||||
|
/*pre.code .cpf { color: #888888 } !* Comment.PreprocFile *!*/
|
||||||
|
/*pre.code .c1 { color: #888888 } !* Comment.Single *!*/
|
||||||
|
/*pre.code .cs { color: #cc0000; font-weight: bold } !* Comment.Special *!*/
|
||||||
|
/*pre.code .ge { font-style: italic } !* Generic.Emph *!*/
|
||||||
|
/*pre.code .gr { color: #FF0000 } !* Generic.Error *!*/
|
||||||
|
/*pre.code .gh { color: #000080; font-weight: bold } !* Generic.Heading *!*/
|
||||||
|
/*pre.code .go { color: #888888 } !* Generic.Output *!*/
|
||||||
|
/*pre.code .gp { color: #c65d09; font-weight: bold } !* Generic.Prompt *!*/
|
||||||
|
/*pre.code .gs { font-weight: bold } !* Generic.Strong *!*/
|
||||||
|
/*pre.code .gu { color: #800080; font-weight: bold } !* Generic.Subheading *!*/
|
||||||
|
/*pre.code .gt { color: #0044DD } !* Generic.Traceback *!*/
|
||||||
|
/*pre.code .kc { color: #008800; font-weight: bold } !* Keyword.Constant *!*/
|
||||||
|
/*pre.code .kd { color: #008800; font-weight: bold } !* Keyword.Declaration *!*/
|
||||||
|
/*pre.code .kn { color: #008800; font-weight: bold } !* Keyword.Namespace *!*/
|
||||||
|
/*pre.code .kp { color: #003388; font-weight: bold } !* Keyword.Pseudo *!*/
|
||||||
|
/*pre.code .kr { color: #008800; font-weight: bold } !* Keyword.Reserved *!*/
|
||||||
|
/*pre.code .kt { color: #333399; font-weight: bold } !* Keyword.Type *!*/
|
||||||
|
/*pre.code .m { color: #6600EE; font-weight: bold } !* Literal.Number *!*/
|
||||||
|
/*pre.code .s { background-color: #fff0f0 } !* Literal.String *!*/
|
||||||
|
/*pre.code .na { color: #0000CC } !* Name.Attribute *!*/
|
||||||
|
/*pre.code .nb { color: #007020 } !* Name.Builtin *!*/
|
||||||
|
/*pre.code .nc { color: #BB0066; font-weight: bold } !* Name.Class *!*/
|
||||||
|
/*pre.code .no { color: #003366; font-weight: bold } !* Name.Constant *!*/
|
||||||
|
/*pre.code .nd { color: #555555; font-weight: bold } !* Name.Decorator *!*/
|
||||||
|
/*pre.code .ni { color: #880000; font-weight: bold } !* Name.Entity *!*/
|
||||||
|
/*pre.code .ne { color: #FF0000; font-weight: bold } !* Name.Exception *!*/
|
||||||
|
/*pre.code .nf { color: #0066BB; font-weight: bold } !* Name.Function *!*/
|
||||||
|
/*pre.code .nl { color: #997700; font-weight: bold } !* Name.Label *!*/
|
||||||
|
/*pre.code .nn { color: #0e84b5; font-weight: bold } !* Name.Namespace *!*/
|
||||||
|
/*pre.code .nt { color: #007700 } !* Name.Tag *!*/
|
||||||
|
/*pre.code .nv { color: #996633 } !* Name.Variable *!*/
|
||||||
|
/*pre.code .ow { color: #000000; font-weight: bold } !* Operator.Word *!*/
|
||||||
|
/*pre.code .w { color: #bbbbbb } !* Text.Whitespace *!*/
|
||||||
|
/*pre.code .mb { color: #6600EE; font-weight: bold } !* Literal.Number.Bin *!*/
|
||||||
|
/*pre.code .mf { color: #6600EE; font-weight: bold } !* Literal.Number.Float *!*/
|
||||||
|
/*pre.code .mh { color: #005588; font-weight: bold } !* Literal.Number.Hex *!*/
|
||||||
|
/*pre.code .mi { color: #0000DD; font-weight: bold } !* Literal.Number.Integer *!*/
|
||||||
|
/*pre.code .mo { color: #4400EE; font-weight: bold } !* Literal.Number.Oct *!*/
|
||||||
|
/*pre.code .sa { background-color: #fff0f0 } !* Literal.String.Affix *!*/
|
||||||
|
/*pre.code .sb { background-color: #fff0f0 } !* Literal.String.Backtick *!*/
|
||||||
|
/*pre.code .sc { color: #0044DD } !* Literal.String.Char *!*/
|
||||||
|
/*pre.code .dl { background-color: #fff0f0 } !* Literal.String.Delimiter *!*/
|
||||||
|
/*pre.code .sd { color: #DD4422 } !* Literal.String.Doc *!*/
|
||||||
|
/*pre.code .s2 { background-color: #fff0f0 } !* Literal.String.Double *!*/
|
||||||
|
/*pre.code .se { color: #666666; font-weight: bold; background-color: #fff0f0 } !* Literal.String.Escape *!*/
|
||||||
|
/*pre.code .sh { background-color: #fff0f0 } !* Literal.String.Heredoc *!*/
|
||||||
|
/*pre.code .si { background-color: #eeeeee } !* Literal.String.Interpol *!*/
|
||||||
|
/*pre.code .sx { color: #DD2200; background-color: #fff0f0 } !* Literal.String.Other *!*/
|
||||||
|
/*pre.code .sr { color: #000000; background-color: #fff0ff } !* Literal.String.Regex *!*/
|
||||||
|
/*pre.code .s1 { background-color: #fff0f0 } !* Literal.String.Single *!*/
|
||||||
|
/*pre.code .ss { color: #AA6600 } !* Literal.String.Symbol *!*/
|
||||||
|
/*pre.code .bp { color: #007020 } !* Name.Builtin.Pseudo *!*/
|
||||||
|
/*pre.code .fm { color: #0066BB; font-weight: bold } !* Name.Function.Magic *!*/
|
||||||
|
/*pre.code .vc { color: #336699 } !* Name.Variable.Class *!*/
|
||||||
|
/*pre.code .vg { color: #dd7700; font-weight: bold } !* Name.Variable.Global *!*/
|
||||||
|
/*pre.code .vi { color: #3333BB } !* Name.Variable.Instance *!*/
|
||||||
|
/*pre.code .vm { color: #996633 } !* Name.Variable.Magic *!*/
|
||||||
|
/*pre.code .il { color: #0000DD; font-weight: bold } !* Literal.Number.Integer.Long *!*/
|
|
@ -273,6 +273,7 @@ def rst2html(i, o, stylesheets):
|
||||||
writer_name="html",
|
writer_name="html",
|
||||||
settings_overrides={
|
settings_overrides={
|
||||||
"stylesheet_path": stylesheets,
|
"stylesheet_path": stylesheets,
|
||||||
|
"syntax_highlight": "short",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -55,5 +55,37 @@ Authorization rules for events
|
||||||
Like redactions, all rules relating specifically to events of type ``m.room.aliases``
|
Like redactions, all rules relating specifically to events of type ``m.room.aliases``
|
||||||
are removed. They must still pass authorization checks relating to state events.
|
are removed. They must still pass authorization checks relating to state events.
|
||||||
|
|
||||||
|
Additionally, the authorization rules for events of type ``m.room.power_levels``
|
||||||
|
now include the content key ``notifications``. This new rule takes the place of the
|
||||||
|
rule which checks the ``events`` and ``users`` keys.
|
||||||
|
|
||||||
|
For completeness, the changes to the auth rules can be represented as follows:
|
||||||
|
|
||||||
|
.. code:: diff
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
-If type is `m.room.aliases`:
|
||||||
|
-
|
||||||
|
- a. If event has no `state_key`, reject.
|
||||||
|
- b. If sender's domain doesn't matches `state_key`, reject.
|
||||||
|
- c. Otherwise, allow.
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
If type is `m.room.power_levels`:
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
- * For each entry being added, changed or removed in both the `events` and `users` keys:
|
||||||
|
+ * For each entry being added, changed or removed in the `events`, `users`, and `notifications` keys:
|
||||||
|
|
||||||
|
i. If the current value is higher than the `sender`'s current power level, reject.
|
||||||
|
|
||||||
|
ii. If the new value is higher than the `sender`'s current power level, reject.
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
The remaining rules are the same as in `room version 3 <v3.html#authorization-rules-for-events>`_
|
The remaining rules are the same as in `room version 3 <v3.html#authorization-rules-for-events>`_
|
||||||
(the last inherited room version to specify the authorization rules).
|
(the last inherited room version to specify the authorization rules).
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue