/** * All registered entities * * @param locale Locale * @return List of entity targets */ public List<OperationPermissionTarget> getEntities(Locale locale) { return getItem(locale).entities; }
@Override public Tree<BasicPermissionTarget> getPermissions() { Tree<BasicPermissionTarget> allPermissions = permissionConfig.getSpecific(userSessionSource.getLocale()); return filterPermitted(allPermissions); }
@Override protected void loadData(Map<String, Object> params) { if (permissionDs == null) return; if (targets == null) { targets = new ArrayList<>(); PermissionConfig permissionConfig = AppBeans.get(PermissionConfig.class); List<OperationPermissionTarget> entities = permissionConfig.getEntities(userSessionSource.getLocale()); for (OperationPermissionTarget target : entities) { try { OperationPermissionTarget cloneTarget = target.clone(); loadPermissionVariants(cloneTarget); attachListener(cloneTarget); targets.add(cloneTarget); } catch (CloneNotSupportedException e) { throw new RuntimeException("Can't clone permission target", e); } } } data.clear(); targets.stream() .filter(permittedEntityFilter) .filter(t -> permissionsFilter == null || permissionsFilter.test(t)) .forEach(t -> data.put(t.getId(), t)); }
@Override protected void loadData(Map<String, Object> params) { if (permissionDs == null) return; if (targets == null) { targets = new ArrayList<>(); PermissionConfig permissionConfig = AppBeans.get(PermissionConfig.class); List<MultiplePermissionTarget> entityAttrs = permissionConfig.getEntityAttributes(AppBeans.get(UserSessionSource.class).getLocale()); for (MultiplePermissionTarget target : entityAttrs) { try { MultiplePermissionTarget cloneTarget = target.clone(); loadPermissionVariants(cloneTarget); attachListener(cloneTarget); targets.add(cloneTarget); } catch (CloneNotSupportedException e) { throw new RuntimeException(e); } } } clear(); targets.stream() .filter(permittedEntityFilter) .filter(t -> permissionsFilter == null || permissionsFilter.test(t)) .forEach(t -> data.put(t.getId(), t)); }
@Override public Tree<BasicPermissionTarget> getPermissions() { Tree<BasicPermissionTarget> allPermissions = permissionConfig.getScreens(userSessionSource.getLocale()); return new Tree<>(collectSuitableNodes(allPermissions.getRootNodes())); }
@Override public void init(Map<String, Object> params) { categoryTable.addAction(new CreateAction()); categoryTable.addAction(new EditAction()); categoryTable.addAction(new RemoveAction(categoryTable)); categoryTable.addAction(new BaseAction("applyChanges") .withCaption(getMessage("categoryTable.applyChanges")) .withHandler(actionPerformedEvent -> { dynamicAttributesCacheService.loadCache(); clientCacheManager.refreshCached(DynamicAttributesCacheStrategy.NAME); permissionConfig.clearConfigCache(); showNotification(getMessage("notification.changesApplied")); })); categoryTable.removeGeneratedColumn("entityType"); categoryTable.addGeneratedColumn("entityType", entity -> { Label dataTypeLabel = componentsFactory.createComponent(Label.class); MetaClass meta = metadata.getSession().getClassNN(entity.getEntityType()); dataTypeLabel.setValue(messageTools.getEntityCaption(meta)); return dataTypeLabel; }); }
/** * All registered entities with attributes * * @param locale Locale * @return List of attribute targets */ public List<MultiplePermissionTarget> getEntityAttributes(Locale locale) { return getItem(locale).entityAttributes; }
/** * All specific permissions * * @param locale Locale * @return Tree with specific targets */ public Tree<BasicPermissionTarget> getSpecific(Locale locale) { return getItem(locale).specific; }
/** * All registered screens * * @param locale Locale * @return Tree with screen targets */ public Tree<BasicPermissionTarget> getScreens(Locale locale) { return getItem(locale).screens; }