fix(richtext-lexical): link drawer has no fields if parent document create access control is false (#10954)
Previously, the lexical link drawer did not display any fields if the `create` permission was false, even though the `update` permission was true. The issue was a faulty permission check in `RenderFields` that did not check the top-level permission operation keys for truthiness. It only checked if the `permissions` variable itself was `true`, or if the sub-fields had `create` / `update` permissions set to `true`.
This commit is contained in:
@@ -34,6 +34,7 @@ export interface Config {
|
||||
lexicalObjectReferenceBug: LexicalObjectReferenceBug;
|
||||
users: User;
|
||||
LexicalInBlock: LexicalInBlock;
|
||||
'lexical-access-control': LexicalAccessControl;
|
||||
'select-versions-fields': SelectVersionsField;
|
||||
'array-fields': ArrayField;
|
||||
'block-fields': BlockField;
|
||||
@@ -80,6 +81,7 @@ export interface Config {
|
||||
lexicalObjectReferenceBug: LexicalObjectReferenceBugSelect<false> | LexicalObjectReferenceBugSelect<true>;
|
||||
users: UsersSelect<false> | UsersSelect<true>;
|
||||
LexicalInBlock: LexicalInBlockSelect<false> | LexicalInBlockSelect<true>;
|
||||
'lexical-access-control': LexicalAccessControlSelect<false> | LexicalAccessControlSelect<true>;
|
||||
'select-versions-fields': SelectVersionsFieldsSelect<false> | SelectVersionsFieldsSelect<true>;
|
||||
'array-fields': ArrayFieldsSelect<false> | ArrayFieldsSelect<true>;
|
||||
'block-fields': BlockFieldsSelect<false> | BlockFieldsSelect<true>;
|
||||
@@ -454,6 +456,31 @@ export interface LexicalInBlock {
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "lexical-access-control".
|
||||
*/
|
||||
export interface LexicalAccessControl {
|
||||
id: string;
|
||||
title?: string | null;
|
||||
richText?: {
|
||||
root: {
|
||||
type: string;
|
||||
children: {
|
||||
type: string;
|
||||
version: number;
|
||||
[k: string]: unknown;
|
||||
}[];
|
||||
direction: ('ltr' | 'rtl') | null;
|
||||
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
|
||||
indent: number;
|
||||
version: number;
|
||||
};
|
||||
[k: string]: unknown;
|
||||
} | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "select-versions-fields".
|
||||
@@ -469,7 +496,7 @@ export interface SelectVersionsField {
|
||||
| null;
|
||||
blocks?:
|
||||
| {
|
||||
hasManyArr?: ('a' | 'b' | 'c')[] | null;
|
||||
hasManyBlocks?: ('a' | 'b' | 'c')[] | null;
|
||||
id?: string | null;
|
||||
blockName?: string | null;
|
||||
blockType: 'block';
|
||||
@@ -1830,6 +1857,10 @@ export interface PayloadLockedDocument {
|
||||
relationTo: 'LexicalInBlock';
|
||||
value: string | LexicalInBlock;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'lexical-access-control';
|
||||
value: string | LexicalAccessControl;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'select-versions-fields';
|
||||
value: string | SelectVersionsField;
|
||||
@@ -2104,6 +2135,16 @@ export interface LexicalInBlockSelect<T extends boolean = true> {
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "lexical-access-control_select".
|
||||
*/
|
||||
export interface LexicalAccessControlSelect<T extends boolean = true> {
|
||||
title?: T;
|
||||
richText?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "select-versions-fields_select".
|
||||
@@ -2122,7 +2163,7 @@ export interface SelectVersionsFieldsSelect<T extends boolean = true> {
|
||||
block?:
|
||||
| T
|
||||
| {
|
||||
hasManyArr?: T;
|
||||
hasManyBlocks?: T;
|
||||
id?: T;
|
||||
blockName?: T;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user