scrivito
Version:
Scrivito is a professional, yet easy to use SaaS Enterprise Content Management Service, built for digital agencies and medium to large businesses. It is completely maintenance-free, cost-effective, and has unprecedented performance and security.
33 lines (28 loc) • 952 B
text/typescript
import { uiAdapter } from 'scrivito_sdk/app_support/ui_adapter';
import { throwInvalidArgumentsError } from 'scrivito_sdk/common';
import { loadWithDefault } from 'scrivito_sdk/loadable';
import { currentWorkspaceId, isWrappingBasicObj } from 'scrivito_sdk/models';
import { unwrapAppClass } from 'scrivito_sdk/realm';
import { Obj } from 'scrivito_sdk/realm/obj';
/** @public */
export function canEdit(obj: Obj): boolean {
checkCanEditArguments(obj);
return canEditObjWithId(unwrapAppClass(obj).id());
}
export function canEditObjWithId(objId: string): boolean {
const ui = uiAdapter;
if (!ui) return false;
return (
loadWithDefault(false, () => ui.canEdit(currentWorkspaceId(), objId)) ||
false
);
}
function checkCanEditArguments(obj: Obj) {
if (!isWrappingBasicObj(obj)) {
throwInvalidArgumentsError(
'canEdit',
"'obj' must be an instance of 'Obj'.",
{ docPermalink: 'js-sdk/canEdit' }
);
}
}