public EntityPermissionTargetsDatasource() { userSessionSource = AppBeans.get(UserSessionSource.NAME); UserSession session = userSessionSource.getUserSession(); permittedEntityFilter = target -> { if (target == null) { return false; } MetaClass metaClass = target.getEntityMetaClass(); return session.isEntityOpPermitted(metaClass, EntityOp.READ) || session.isEntityOpPermitted(metaClass, EntityOp.CREATE) || session.isEntityOpPermitted(metaClass, EntityOp.DELETE) || session.isEntityOpPermitted(metaClass, EntityOp.UPDATE); }; }
public MultiplePermissionTargetsDatasource() { userSessionSource = AppBeans.get(UserSessionSource.class); UserSession session = userSessionSource.getUserSession(); permittedEntityFilter = target -> { if (target == null) { return false; } MetaClass metaClass = target.getEntityMetaClass(); return session.isEntityOpPermitted(metaClass, EntityOp.READ) || session.isEntityOpPermitted(metaClass, EntityOp.CREATE) || session.isEntityOpPermitted(metaClass, EntityOp.DELETE) || session.isEntityOpPermitted(metaClass, EntityOp.UPDATE); }; }
public boolean applicableToEntity(Class javaClass) { MetaClass metaClass = metadata.getClass(javaClass); return userSession.isEntityOpPermitted(metaClass, operation); } }
@Override public boolean isEntityOpPermitted(MetaClass metaClass, EntityOp entityOp) { MetaClass originalMetaClass = extendedEntities.getOriginalMetaClass(metaClass); if (originalMetaClass != null) { metaClass = originalMetaClass; } return userSessionSource.getUserSession().isEntityOpPermitted(metaClass, entityOp); }
protected void applyPermissions(boolean editable) { allHideCheck.setEditable(editable); allModifyCheck.setEditable(editable); allReadOnlyCheck.setEditable(editable); MetaClass metaClass = attributeTargetsDs.getItem().getEntityMetaClass(); for (AttributePermissionControl attributePermissionControl : permissionControls) { attributePermissionControl.getHideCheckBox().setEditable(editable); attributePermissionControl.getHideCheckBox().setEnabled(editable); attributePermissionControl.getReadOnlyCheckBox().setEditable(editable); attributePermissionControl.getReadOnlyCheckBox().setEnabled(editable); String attributeName = attributePermissionControl.getAttributeName(); if (userSession.isEntityAttrPermitted(metaClass, attributeName, EntityAttrAccess.MODIFY)) { boolean canUpdateEntity = userSession.isEntityOpPermitted(metaClass, EntityOp.UPDATE); attributePermissionControl.getModifyCheckBox().setEditable(canUpdateEntity && editable); attributePermissionControl.getModifyCheckBox().setEnabled(canUpdateEntity && editable); } else { attributePermissionControl.getModifyCheckBox().setEditable(false); attributePermissionControl.getModifyCheckBox().setEnabled(false); } } }