CB-1356 User meta parameters API

This commit is contained in:
Serge Rider
2021-10-28 15:36:03 +03:00
parent c332d095f2
commit e143fa5558
6 changed files with 63 additions and 1 deletions
@@ -156,6 +156,14 @@ extend type Query {
parameters: Object): AdminAuthProviderConfiguration!
deleteAuthProviderConfiguration(id: ID!): Boolean!
#### User profile
saveUserMetaParameter(id: ID!, displayName: String!, description: String, required: Boolean!): Boolean!
deleteUserMetaParameter(id: ID!): Boolean!
setUserMetaParameterValues(userId: ID!, parameters: Object!): Boolean!
#### Global configuration
configureServer(configuration: ServerConfigInput!): Boolean!
@@ -140,4 +140,13 @@ public interface DBWServiceAdmin extends DBWService {
@WebAction(requirePermissions = DBWConstants.PERMISSION_ADMIN)
boolean setSubjectConnectionAccess(@NotNull WebSession webSession, @NotNull String subjectId, @NotNull List<String> connections) throws DBWebException;
////////////////////////////////////////////////////////////////////
// User meta parameters
@WebAction(requirePermissions = DBWConstants.PERMISSION_ADMIN)
boolean saveUserMetaParameter(WebSession webSession, String id, String displayName, String description, Boolean required) throws DBWebException;
@WebAction(requirePermissions = DBWConstants.PERMISSION_ADMIN)
Object deleteUserMetaParameter(WebSession webSession, String id) throws DBWebException;
@WebAction(requirePermissions = DBWConstants.PERMISSION_ADMIN)
Object setUserMetaParameterValues(WebSession webSession, String userId, Map<String, Object> parameters) throws DBWebException;
}
@@ -119,7 +119,26 @@ public class WebServiceBindingAdmin extends WebServiceBindingBase<DBWServiceAdmi
.dataFetcher("deleteAuthProviderConfiguration",
env -> getService(env).deleteAuthProviderConfiguration(getWebSession(env), env.getArgument("id")))
.dataFetcher("configureServer",
.dataFetcher("saveUserMetaParameter",
env -> getService(env).saveUserMetaParameter(
getWebSession(env),
env.getArgument("id"),
env.getArgument("displayName"),
env.getArgument("description"),
env.getArgument("required")))
.dataFetcher("deleteUserMetaParameter",
env -> getService(env).deleteUserMetaParameter(
getWebSession(env),
env.getArgument("id")))
.dataFetcher("setUserMetaParameterValues",
env -> getService(env).setUserMetaParameterValues(
getWebSession(env),
env.getArgument("userId"),
env.getArgument("parameters")))
.dataFetcher("configureServer",
env -> getService(env).configureServer(getWebSession(env), new AdminServerConfig(env.getArgument("configuration"))))
.dataFetcher("setDefaultNavigatorSettings",
env -> getService(env).setDefaultNavigatorSettings(getWebSession(env), WebServiceUtils.parseNavigatorSettings(env.getArgument("settings"))))
@@ -594,4 +594,19 @@ public class WebServiceAdmin implements DBWServiceAdmin {
return true;
}
@Override
public boolean saveUserMetaParameter(WebSession webSession, String id, String displayName, String description, Boolean required) throws DBWebException {
throw new DBWebException("Not implemented");
}
@Override
public Object deleteUserMetaParameter(WebSession webSession, String id) throws DBWebException {
throw new DBWebException("Not implemented");
}
@Override
public Object setUserMetaParameterValues(WebSession webSession, String userId, Map<String, Object> parameters) throws DBWebException {
throw new DBWebException("Not implemented");
}
}
@@ -86,6 +86,9 @@ type UserInfo {
authTokens: [UserAuthToken!]!
linkedAuthProviders: [String!]!
# User profile properties map
metaParameters: Object!
}
extend type Query {
@@ -106,4 +109,6 @@ extend type Query {
authChangeLocalPassword(oldPassword: String!, newPassword: String!): Boolean!
listUserProfileProperties: [ObjectPropertyInfo!]!
}
@@ -26,6 +26,7 @@ import org.jkiss.dbeaver.model.meta.Property;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -74,4 +75,9 @@ public class WebUserInfo {
return Arrays.asList(linkedProviders);
}
@Property
public Map<String, String> getMetaParameters() {
return user.getMetaParameters();
}
}