protected boolean isEntityAttrPermitted(MetaClass metaClass, MetaPropertyPath propertyPath, EntityAttrAccess access) { MetaClass originalMetaClass = extendedEntities.getOriginalMetaClass(metaClass); if (originalMetaClass != null) { metaClass = originalMetaClass; } return userSessionSource.getUserSession() .isEntityAttrPermitted(metaClass, propertyPath.getMetaProperty().getName(), access); }
private void initPermissionControls(MultiplePermissionTarget item, GridLayout editGrid) { int i = 0; MetaClass metaClass = item.getEntityMetaClass(); for (AttributeTarget target : item.getPermissions()) { if (!userSession.isEntityAttrPermitted(metaClass, target.getId(), EntityAttrAccess.VIEW)) { continue; } AttributePermissionControl control = new AttributePermissionControl(item, target.getId()); int gridRow = i + 2; editGrid.add(control.getAttributeLabel(), 0, gridRow); editGrid.add(control.getModifyCheckBox(), 1, gridRow); editGrid.add(control.getReadOnlyCheckBox(), 2, gridRow); editGrid.add(control.getHideCheckBox(), 3, gridRow); control.getModifyCheckBox().setAlignment(Alignment.MIDDLE_CENTER); control.getReadOnlyCheckBox().setAlignment(Alignment.MIDDLE_CENTER); control.getHideCheckBox().setAlignment(Alignment.MIDDLE_CENTER); permissionControls.add(control); i++; } }
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); } } }