[permissions] QA fixes (#13698)
In this PR - Introduction of readableFields and updatableFields in objectMetadataItem selector to ease filtering from a developer experience perspective ( + to help developers think to do it). In discussion @lucasbordeau @charlesBochet - Remove non-updatable field from CSV import process (@etiennejouan) - QA fix / Non-readable fields should not show on show page - QA fix / It should not be offered to create a kanban view on a non-readable field - QA fix / It should not be offered to create view groups on a non-readable field - QA fix / Rating field should have a readonly mode --------- Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
import { RestrictedFieldsPermissions } from './RestrictedFieldsPermissions';
|
||||
|
||||
export type ObjectPermissions = {
|
||||
canReadObjectRecords: boolean;
|
||||
canUpdateObjectRecords: boolean;
|
||||
canSoftDeleteObjectRecords: boolean;
|
||||
canDestroyObjectRecords: boolean;
|
||||
restrictedFields: RestrictedFieldsPermissions;
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
import { RestrictedFieldsPermissions } from './RestrictedFieldsPermissions';
|
||||
|
||||
// TODO: DEPRECATE THIS
|
||||
export type ObjectPermissionsDeprecated = {
|
||||
canRead: boolean;
|
||||
canUpdate: boolean;
|
||||
canSoftDelete: boolean;
|
||||
canDestroy: boolean;
|
||||
restrictedFields: RestrictedFieldsPermissions;
|
||||
};
|
||||
@@ -1,14 +0,0 @@
|
||||
type ObjectMetadataId = string;
|
||||
export type ObjectRecordsPermissions = Record<
|
||||
ObjectMetadataId,
|
||||
{
|
||||
canRead: boolean;
|
||||
canUpdate: boolean;
|
||||
canSoftDelete: boolean;
|
||||
canDestroy: boolean;
|
||||
restrictedFields: Record<
|
||||
string,
|
||||
{ canRead?: boolean | null; canUpdate?: boolean | null }
|
||||
>;
|
||||
}
|
||||
>;
|
||||
@@ -1,7 +0,0 @@
|
||||
import { ObjectRecordsPermissions } from './ObjectRecordsPermissions';
|
||||
|
||||
type RoleId = string;
|
||||
export type ObjectRecordsPermissionsByRoleId = Record<
|
||||
RoleId,
|
||||
ObjectRecordsPermissions
|
||||
>;
|
||||
@@ -0,0 +1,5 @@
|
||||
import { ObjectPermissions } from './ObjectPermissions';
|
||||
|
||||
type ObjectMetadataId = string;
|
||||
|
||||
export type ObjectsPermissions = Record<ObjectMetadataId, ObjectPermissions>;
|
||||
@@ -0,0 +1,5 @@
|
||||
import { ObjectsPermissions } from './ObjectsPermissions';
|
||||
|
||||
type RoleId = string;
|
||||
|
||||
export type ObjectsPermissionsByRoleId = Record<RoleId, ObjectsPermissions>;
|
||||
@@ -0,0 +1,9 @@
|
||||
import { ObjectsPermissionsDeprecated } from './ObjectsPermissionsDeprecated';
|
||||
|
||||
type RoleId = string;
|
||||
|
||||
// TODO: DEPRECATE THIS
|
||||
export type ObjectsPermissionsByRoleIdDeprecated = Record<
|
||||
RoleId,
|
||||
ObjectsPermissionsDeprecated
|
||||
>;
|
||||
@@ -0,0 +1,9 @@
|
||||
import { ObjectPermissionsDeprecated } from './ObjectPermissionsDeprecated';
|
||||
|
||||
type ObjectMetadataId = string;
|
||||
|
||||
// TODO: DEPRECATE THIS
|
||||
export type ObjectsPermissionsDeprecated = Record<
|
||||
ObjectMetadataId,
|
||||
ObjectPermissionsDeprecated
|
||||
>;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
export type RestrictedField = {
|
||||
export type RestrictedFieldPermissions = {
|
||||
canRead?: boolean | null;
|
||||
canUpdate?: boolean | null;
|
||||
};
|
||||
@@ -1,3 +0,0 @@
|
||||
import { RestrictedField } from './RestrictedField';
|
||||
|
||||
export type RestrictedFields = Record<string, RestrictedField>;
|
||||
@@ -0,0 +1,6 @@
|
||||
import { RestrictedFieldPermissions } from './RestrictedFieldPermissions';
|
||||
|
||||
export type RestrictedFieldsPermissions = Record<
|
||||
string,
|
||||
RestrictedFieldPermissions
|
||||
>;
|
||||
@@ -17,11 +17,15 @@ export type { FromTo } from './FromToType';
|
||||
export type { IsExactly } from './IsExactly';
|
||||
export type { NonNullableRequired } from './NonNullableRequired';
|
||||
export type { NullablePartial } from './NullablePartial';
|
||||
export type { ObjectRecordsPermissions } from './ObjectRecordsPermissions';
|
||||
export type { ObjectRecordsPermissionsByRoleId } from './ObjectRecordsPermissionsByRoleId';
|
||||
export type { ObjectPermissions } from './ObjectPermissions';
|
||||
export type { ObjectPermissionsDeprecated } from './ObjectPermissionsDeprecated';
|
||||
export type { ObjectsPermissions } from './ObjectsPermissions';
|
||||
export type { ObjectsPermissionsByRoleId } from './ObjectsPermissionsByRoleId';
|
||||
export type { ObjectsPermissionsByRoleIdDeprecated } from './ObjectsPermissionsByRoleIdDeprecated';
|
||||
export type { ObjectsPermissionsDeprecated } from './ObjectsPermissionsDeprecated';
|
||||
export type { RelationAndMorphRelationFieldMetadataType } from './RelationAndMorphRelationFieldMetadataType';
|
||||
export type { RestrictedField } from './RestrictedField';
|
||||
export type { RestrictedFields } from './RestrictedFields';
|
||||
export type { RestrictedFieldPermissions } from './RestrictedFieldPermissions';
|
||||
export type { RestrictedFieldsPermissions } from './RestrictedFieldsPermissions';
|
||||
export type { StepFilterGroup, StepFilter } from './StepFilters';
|
||||
export { StepLogicalOperator } from './StepFilters';
|
||||
export { TwoFactorAuthenticationStrategy } from './TwoFactorAuthenticationStrategy';
|
||||
|
||||
Reference in New Issue
Block a user