Adapt viewer preview controls to permission changes.
This commit is contained in:
parent
a9c31a378e
commit
abe06b4658
2 changed files with 12 additions and 13 deletions
|
|
@ -31,6 +31,7 @@ import java.util.logging.Logger;
|
||||||
*/
|
*/
|
||||||
public final class DataPath {
|
public final class DataPath {
|
||||||
|
|
||||||
|
@SuppressWarnings("PMD.FieldNamingConventions")
|
||||||
private static final Logger logger
|
private static final Logger logger
|
||||||
= Logger.getLogger(DataPath.class.getName());
|
= Logger.getLogger(DataPath.class.getName());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ import java.util.Optional;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import org.bouncycastle.util.Objects;
|
import org.bouncycastle.util.Objects;
|
||||||
import org.jdrupes.vmoperator.common.K8sObserver;
|
import org.jdrupes.vmoperator.common.K8sObserver;
|
||||||
import org.jdrupes.vmoperator.common.VmDefinition;
|
import org.jdrupes.vmoperator.common.VmDefinition;
|
||||||
|
|
@ -55,7 +56,6 @@ import org.jdrupes.vmoperator.manager.events.ModifyVm;
|
||||||
import org.jdrupes.vmoperator.manager.events.ResetVm;
|
import org.jdrupes.vmoperator.manager.events.ResetVm;
|
||||||
import org.jdrupes.vmoperator.manager.events.VmChannel;
|
import org.jdrupes.vmoperator.manager.events.VmChannel;
|
||||||
import org.jdrupes.vmoperator.manager.events.VmDefChanged;
|
import org.jdrupes.vmoperator.manager.events.VmDefChanged;
|
||||||
import org.jdrupes.vmoperator.util.DataPath;
|
|
||||||
import org.jgrapes.core.Channel;
|
import org.jgrapes.core.Channel;
|
||||||
import org.jgrapes.core.Components;
|
import org.jgrapes.core.Components;
|
||||||
import org.jgrapes.core.Event;
|
import org.jgrapes.core.Event;
|
||||||
|
|
@ -123,7 +123,7 @@ public class VmViewer extends FreeMarkerConlet<VmViewer.ViewerModel> {
|
||||||
private static ObjectMapper objectMapper
|
private static ObjectMapper objectMapper
|
||||||
= new ObjectMapper().registerModule(new JavaTimeModule());
|
= new ObjectMapper().registerModule(new JavaTimeModule());
|
||||||
private Class<?> preferredIpVersion = Inet4Address.class;
|
private Class<?> preferredIpVersion = Inet4Address.class;
|
||||||
private final Set<String> syncUsers = new HashSet<>();
|
private Set<String> syncUsers = new HashSet<>();
|
||||||
private final Set<String> syncRoles = new HashSet<>();
|
private final Set<String> syncRoles = new HashSet<>();
|
||||||
private boolean deleteConnectionFile = true;
|
private boolean deleteConnectionFile = true;
|
||||||
|
|
||||||
|
|
@ -173,15 +173,12 @@ public class VmViewer extends FreeMarkerConlet<VmViewer.ViewerModel> {
|
||||||
.filter(v -> v instanceof String).map(v -> (String) v)
|
.filter(v -> v instanceof String).map(v -> (String) v)
|
||||||
.map(Boolean::parseBoolean).orElse(true);
|
.map(Boolean::parseBoolean).orElse(true);
|
||||||
|
|
||||||
// Sync
|
// Sync preview for users or roles
|
||||||
for (var entry : (List<Map<String, String>>) c.getOrDefault(
|
syncUsers = ((List<Map<String, String>>) c.getOrDefault(
|
||||||
"syncPreviewsFor", Collections.emptyList())) {
|
"syncPreviewsFor", Collections.emptyList())).stream()
|
||||||
if (entry.containsKey("user")) {
|
.map(m -> Optional.ofNullable(m.get("user"))
|
||||||
syncUsers.add(entry.get("user"));
|
.orElse(m.get("role")))
|
||||||
} else if (entry.containsKey("role")) {
|
.filter(s -> s != null).collect(Collectors.toSet());
|
||||||
syncRoles.add(entry.get("role"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (ClassCastException e) {
|
} catch (ClassCastException e) {
|
||||||
logger.config("Malformed configuration: " + e.getMessage());
|
logger.config("Malformed configuration: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
@ -367,8 +364,9 @@ public class VmViewer extends FreeMarkerConlet<VmViewer.ViewerModel> {
|
||||||
fmModel(event, channel, conletId, model)))
|
fmModel(event, channel, conletId, model)))
|
||||||
.setRenderAs(
|
.setRenderAs(
|
||||||
RenderMode.Preview.addModifiers(event.renderAs()))
|
RenderMode.Preview.addModifiers(event.renderAs()))
|
||||||
.setSupportedModes(
|
.setSupportedModes(syncPreviews(channel.session())
|
||||||
model.isGenerated() ? MODES_FOR_GENERATED : MODES));
|
? MODES_FOR_GENERATED
|
||||||
|
: MODES));
|
||||||
renderedAs.add(RenderMode.Preview);
|
renderedAs.add(RenderMode.Preview);
|
||||||
if (!Strings.isNullOrEmpty(model.vmName())) {
|
if (!Strings.isNullOrEmpty(model.vmName())) {
|
||||||
Optional.ofNullable(channel.session().get(RENDERED))
|
Optional.ofNullable(channel.session().get(RENDERED))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue