feat: Add ability to configure guest permissions (#10708)

* Configure guest permissions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix permission domain

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix permission declaration

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix lock file

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Guest permissions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Allow guests to update their own documents

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Add modules order

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix translations, icons

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* Fix disabled apps and update translations

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
This commit is contained in:
Artyom Savchenko
2026-04-05 14:36:59 +07:00
committed by GitHub
parent 8b5b57563e
commit ea254970c0
81 changed files with 1390 additions and 33 deletions
+2
View File
@@ -80,6 +80,7 @@ import {
import { definePermissions } from './permissions'
import {
TAttributePermission,
TModulePermissionGroup,
TClassPermission,
TPermission,
TRole,
@@ -136,6 +137,7 @@ export function createModel (builder: Builder): void {
TSpaceTypeDescriptor,
TRole,
TPermission,
TModulePermissionGroup,
TAttributePermission,
TClassPermission,
TAttribute,
+26
View File
@@ -17,6 +17,7 @@ import {
DOMAIN_MODEL,
DOMAIN_SPACE,
IndexKind,
type ModulePermissionGroup,
type AccountRole,
type AccountUuid,
type AnyAttribute,
@@ -46,6 +47,7 @@ import {
Prop,
TypeAccountUuid,
TypeBoolean,
TypeNumber,
TypeRef,
TypeString,
UX
@@ -193,3 +195,27 @@ export class TTxAccessLevel extends TClass implements TxAccessLevel {
updateAccessLevel?: AccountRole
isIdentity?: boolean
}
@Model(core.class.ModulePermissionGroup, core.class.Doc, DOMAIN_MODEL)
export class TModulePermissionGroup extends TDoc implements ModulePermissionGroup {
@Prop(TypeRef(core.class.Doc), core.string.AttachedTo)
application!: Ref<Doc>
@Prop(TypeString(), core.string.Roles)
role!: AccountRole
@Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission)
permissions!: Ref<Permission>[]
@Prop(ArrOf(TypeRef(core.class.Permission)), core.string.Permission)
disabledPermissions?: Ref<Permission>[]
@Prop(TypeRef(core.class.Class), core.string.Class)
spaceClass!: Ref<Class<Space>>
@Prop(TypeBoolean(), core.string.Name)
enabled!: boolean
@Prop(TypeNumber(), core.string.Order)
order?: number
}