protected void initUserGroup(User user) { LoadContext<Group> ctx = new LoadContext<>(Group.class); ctx.setQueryString("select g from sec$Group g"); ctx.setView(View.MINIMAL); List<Group> groups = dataSupplier.loadList(ctx); if (groups.size() == 1) { user.setGroup(groups.get(0)); } }
/** * For entities with composite keys there will be a value of the 'uuid' property in the {@code entityId} parameter. */ protected Entity reloadEntity(MetaClass metaClass, Object entityId) { String ftsPrimaryKeyName = ftsService.getPrimaryKeyPropertyForFts(metaClass).getName(); String queryStr = String.format("select e from %s e where e.%s = :id", metaClass.getName(), ftsPrimaryKeyName); LoadContext lc = new LoadContext(metaClass) .setView(View.MINIMAL) .setQuery(LoadContext.createQuery(queryStr).setParameter("id", entityId)); List list = getDsContext().getDataSupplier().loadList(lc); return list.isEmpty() ? null : (Entity) list.get(0); } }
protected void addDefaultRoles(User user) { LoadContext<Role> ctx = new LoadContext<>(Role.class); ctx.setQueryString("select r from sec$Role r where r.defaultRole = true"); List<Role> defaultRoles = dataSupplier.loadList(ctx); List<UserRole> newRoles = new ArrayList<>(); if (user.getUserRoles() != null) { newRoles.addAll(user.getUserRoles()); } MetaClass metaClass = rolesDs.getMetaClass(); for (Role role : defaultRoles) { UserRole userRole = dataSupplier.newInstance(metaClass); userRole.setRole(role); userRole.setUser(user); newRoles.add(userRole); } user.setUserRoles(newRoles); }
/** * Load data from middleware into {@link #data} field. * <p>In case of error sets {@link #dataLoadError} field to the exception object.</p> * @param params datasource parameters, as described in {@link CollectionDatasource#refresh(java.util.Map)} */ protected void loadData(Map<String, Object> params) { Security security = AppBeans.get(Security.NAME); if (!security.isEntityOpPermitted(metaClass, EntityOp.READ)) { return; } String tag = getLoggingTag("CDS"); StopWatch sw = new Slf4JStopWatch(tag, LoggerFactory.getLogger(UIPerformanceLogger.class)); if (needLoading()) { LoadContext context = beforeLoadData(params); if (context == null) { return; } try { Collection<T> entities = dataSupplier.loadList(context); afterLoadData(params, context, entities); } catch (Throwable e) { dataLoadError = e; } } sw.stop(); }
@Override protected void postInit() { activeField.setEnabled(!userManagementService.isAnonymousUser(getItem().getLogin())); setCaption(PersistenceHelper.isNew(getItem()) ? getMessage("createCaption") : formatMessage("editCaption", getItem().getLogin())); timeZoneLookup.setEnabled(!Boolean.TRUE.equals(getItem().getTimeZoneAuto())); // Do not show roles which are not allowed by security constraints LoadContext<Role> lc = new LoadContext<>(Role.class); lc.setQueryString("select r from sec$Role r"); lc.setView(View.MINIMAL); List<Role> allowedRoles = dataSupplier.loadList(lc); Collection<UserRole> userRoles = new ArrayList<>(rolesDs.getItems()); for (UserRole userRole : userRoles) { if (!allowedRoles.contains(userRole.getRole())) { rolesDs.excludeItem(userRole); } } if (BooleanUtils.isTrue(initCopy)) { initCopy(); } // if we add default roles, rolesDs becomes modified on setItem ((AbstractDatasource) rolesDs).setModified(false); }