mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
Merge remote-tracking branch 'origin/devel' into feat-routing
This commit is contained in:
@@ -40,4 +40,6 @@ extend type Query {
|
||||
|
||||
setRolePermissions(roleId: ID!, permissions: [ID]!): Boolean
|
||||
|
||||
setUserCredentials(userId: ID!, providerId: ID!, credentials: Object!): Boolean
|
||||
|
||||
}
|
||||
|
||||
+4
@@ -24,6 +24,7 @@ import org.jkiss.code.NotNull;
|
||||
import org.jkiss.code.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Web service API
|
||||
@@ -65,4 +66,7 @@ public interface DBWServiceAdmin extends DBWService {
|
||||
@WebAction(requirePermissions = AdminPermissions.PERMISSION_ADMIN)
|
||||
boolean setRolePermissions(@NotNull WebSession webSession, String roleID, String[] permissions) throws DBWebException;
|
||||
|
||||
@WebAction(requirePermissions = AdminPermissions.PERMISSION_ADMIN)
|
||||
boolean setUserCredentials(@NotNull WebSession webSession, @NotNull String userID, @NotNull String providerId, @NotNull Map<String, Object> credentials) throws DBWebException;
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -55,6 +55,8 @@ public class WebServiceBindingAdmin extends WebServiceBindingBase<DBWServiceAdmi
|
||||
env -> getService(env).revokeUserRole(getWebSession(env), env.getArgument("userId"), env.getArgument("userId")));
|
||||
model.getQueryType().dataFetcher("setRolePermissions",
|
||||
env -> getService(env).setRolePermissions(getWebSession(env), env.getArgument("roleId"), env.getArgument("permissions")));
|
||||
model.getQueryType().dataFetcher("setUserCredentials",
|
||||
env -> getService(env).setUserCredentials(getWebSession(env), env.getArgument("userId"), env.getArgument("providerId"), env.getArgument("credentials")));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+16
@@ -20,6 +20,7 @@ import io.cloudbeaver.DBWebException;
|
||||
import io.cloudbeaver.model.session.WebSession;
|
||||
import io.cloudbeaver.model.user.WebRole;
|
||||
import io.cloudbeaver.model.user.WebUser;
|
||||
import io.cloudbeaver.registry.WebAuthProviderDescriptor;
|
||||
import io.cloudbeaver.registry.WebPermissionDescriptor;
|
||||
import io.cloudbeaver.registry.WebServiceDescriptor;
|
||||
import io.cloudbeaver.registry.WebServiceRegistry;
|
||||
@@ -34,6 +35,7 @@ import org.jkiss.utils.ArrayUtils;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Web service implementation
|
||||
@@ -184,4 +186,18 @@ public class WebServiceAdmin implements DBWServiceAdmin {
|
||||
throw new DBWebException("Error setting role permissions", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setUserCredentials(@NotNull WebSession webSession, @NotNull String userID, @NotNull String providerId, @NotNull Map<String, Object> credentials) throws DBWebException {
|
||||
WebAuthProviderDescriptor authProvider = WebServiceRegistry.getInstance().getAuthProvider(providerId);
|
||||
if (authProvider == null) {
|
||||
throw new DBWebException("Invalid auth provider '" + providerId + "'");
|
||||
}
|
||||
try {
|
||||
CBPlatform.getInstance().getApplication().getSecurityController().setUserCredentials(userID, authProvider, credentials);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
throw new DBWebException("Error setting user credentials", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user