CB-2635 disable private connections edit access

This commit is contained in:
Aleksandr Skoblikov
2022-09-29 21:07:49 +03:00
parent 0968537fb9
commit 555476d1f0
2 changed files with 10 additions and 2 deletions
@@ -22,14 +22,17 @@ import io.cloudbeaver.service.security.SMUtils;
import org.jkiss.dbeaver.model.app.DBPProject;
import org.jkiss.dbeaver.model.meta.Property;
import org.jkiss.dbeaver.model.rm.RMProjectPermission;
import org.jkiss.dbeaver.model.rm.RMProjectType;
public class WebProjectInfo {
private final WebSession session;
private final VirtualProjectImpl project;
private final boolean customPrivateConnectionsEnabled;
public WebProjectInfo(WebSession session, VirtualProjectImpl project) {
public WebProjectInfo(WebSession session, VirtualProjectImpl project, boolean customPrivateConnectionsEnabled) {
this.session = session;
this.project = project;
this.customPrivateConnectionsEnabled = customPrivateConnectionsEnabled;
}
public WebSession getSession() {
@@ -62,6 +65,9 @@ public class WebProjectInfo {
@Property
public boolean isCanEditDataSources() {
if (project.getRmProject().getType() == RMProjectType.USER && !customPrivateConnectionsEnabled) {
return false;
}
return hasDataSourcePermission(RMProjectPermission.DATA_SOURCES_EDIT);
}
@@ -645,8 +645,10 @@ public class WebServiceCore implements DBWServiceCore {
// Projects
@Override
public List<WebProjectInfo> getProjects(@NotNull WebSession session) {
var customConnectionsEnabled = CBApplication.getInstance().getAppConfiguration().isSupportsCustomConnections();
return session.getAccessibleProjects().stream()
.map(pr -> new WebProjectInfo(session, pr)).collect(Collectors.toList());
.map(pr -> new WebProjectInfo(session, pr, customConnectionsEnabled))
.collect(Collectors.toList());
}
// Folders