mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
Merge pull request #925 from dbeaver/tech/CB-2191
CB-2191 api to manage subject permission
This commit is contained in:
@@ -118,7 +118,7 @@ extend type Query {
|
||||
grantUserRole(userId: ID!, roleId: ID!): Boolean
|
||||
revokeUserRole(userId: ID!, roleId: ID!): Boolean
|
||||
|
||||
setSubjectPermissions(roleId: ID!, permissions: [ID!]!): Boolean
|
||||
setSubjectPermissions(roleId: ID!, permissions: [ID!]!): [AdminPermissionInfo]!
|
||||
|
||||
setUserCredentials(userId: ID!, providerId: ID!, credentials: Object!): Boolean
|
||||
|
||||
|
||||
+4
@@ -45,4 +45,8 @@ public class AdminPermissionInfo {
|
||||
return permission.getCategory();
|
||||
}
|
||||
|
||||
public String getProvider() {
|
||||
return permission.getService().getLabel();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ public interface DBWServiceAdmin extends DBWService {
|
||||
boolean revokeUserRole(@NotNull WebSession webSession, String user, String role) throws DBWebException;
|
||||
|
||||
@WebAction(requirePermissions = DBWConstants.PERMISSION_ADMIN)
|
||||
boolean setSubjectPermissions(@NotNull WebSession webSession, String roleID, List<String> permissions) throws DBWebException;
|
||||
List<AdminPermissionInfo> setSubjectPermissions(@NotNull WebSession webSession, String roleID, List<String> permissions) throws DBWebException;
|
||||
|
||||
@WebAction(requirePermissions = DBWConstants.PERMISSION_ADMIN)
|
||||
boolean setUserCredentials(@NotNull WebSession webSession, @NotNull String userID, @NotNull String providerId, @NotNull Map<String, Object> credentials) throws DBWebException;
|
||||
|
||||
+7
-6
@@ -56,10 +56,7 @@ import org.jkiss.dbeaver.registry.auth.AuthProviderDescriptor;
|
||||
import org.jkiss.dbeaver.registry.auth.AuthProviderRegistry;
|
||||
import org.jkiss.utils.CommonUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -254,7 +251,7 @@ public class WebServiceAdmin implements DBWServiceAdmin {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setSubjectPermissions(@NotNull WebSession webSession, String roleID, List<String> permissions) throws DBWebException {
|
||||
public List<AdminPermissionInfo> setSubjectPermissions(@NotNull WebSession webSession, String roleID, List<String> permissions) throws DBWebException {
|
||||
WebUser grantor = webSession.getUser();
|
||||
if (grantor == null) {
|
||||
throw new DBWebException("Cannot change permissions in anonymous mode");
|
||||
@@ -263,7 +260,11 @@ public class WebServiceAdmin implements DBWServiceAdmin {
|
||||
|
||||
try {
|
||||
webSession.getAdminSecurityController().setSubjectPermissions(roleID, permissions, grantor.getUserId());
|
||||
return true;
|
||||
Set<String> subjectPermissions = webSession.getAdminSecurityController().getSubjectPermissions(roleID);
|
||||
webSession.refreshUserData();
|
||||
return listPermissions(webSession).stream()
|
||||
.filter(p -> subjectPermissions.contains(p.getId()))
|
||||
.collect(Collectors.toList());
|
||||
} catch (Exception e) {
|
||||
throw new DBWebException("Error setting role permissions", e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user