mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-10-24 23:05:29 +08:00
Merge pull request #1120 from dbeaver/CB-2408-create-disabled-users
CB-2408 create disabled user api
This commit is contained in:
@@ -108,7 +108,7 @@ extend type Query {
|
||||
listRoles(roleId: ID): [AdminRoleInfo!]!
|
||||
listPermissions: [AdminPermissionInfo!]!
|
||||
|
||||
createUser(userId: ID!): AdminUserInfo!
|
||||
createUser(userId: ID!, enabled: Boolean!): AdminUserInfo!
|
||||
deleteUser(userId: ID!): Boolean
|
||||
|
||||
createRole(roleId: ID!, roleName: String, description: String): AdminRoleInfo!
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ public interface DBWServiceAdmin extends DBWService {
|
||||
|
||||
@WebAction(requirePermissions = DBWConstants.PERMISSION_ADMIN)
|
||||
@NotNull
|
||||
AdminUserInfo createUser(@NotNull WebSession webSession, String userName) throws DBWebException;
|
||||
AdminUserInfo createUser(@NotNull WebSession webSession, String userName, @NotNull Boolean enabled) throws DBWebException;
|
||||
|
||||
@WebAction(requirePermissions = DBWConstants.PERMISSION_ADMIN)
|
||||
boolean deleteUser(@NotNull WebSession webSession, String userName) throws DBWebException;
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ public class WebServiceBindingAdmin extends WebServiceBindingBase<DBWServiceAdmi
|
||||
.dataFetcher("listPermissions",
|
||||
env -> getService(env).listPermissions(getWebSession(env)))
|
||||
.dataFetcher("createUser",
|
||||
env -> getService(env).createUser(getWebSession(env), env.getArgument("userId")))
|
||||
env -> getService(env).createUser(getWebSession(env), env.getArgument("userId"), env.getArgument("enabled")))
|
||||
.dataFetcher("deleteUser",
|
||||
env -> getService(env).deleteUser(getWebSession(env), env.getArgument("userId")))
|
||||
.dataFetcher("createRole",
|
||||
|
||||
+2
-2
@@ -134,7 +134,7 @@ public class WebServiceAdmin implements DBWServiceAdmin {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public AdminUserInfo createUser(@NotNull WebSession webSession, String userName) throws DBWebException {
|
||||
public AdminUserInfo createUser(@NotNull WebSession webSession, String userName, @NotNull Boolean enabled) throws DBWebException {
|
||||
if (userName.isEmpty()) {
|
||||
throw new DBWebException("Empty user name");
|
||||
}
|
||||
@@ -142,7 +142,7 @@ public class WebServiceAdmin implements DBWServiceAdmin {
|
||||
|
||||
try {
|
||||
var securityController = webSession.getAdminSecurityController();
|
||||
securityController.createUser(userName, Map.of());
|
||||
securityController.createUser(userName, Map.of(), enabled);
|
||||
var smUser = securityController.getUserById(userName);
|
||||
return new AdminUserInfo(webSession, new WebUser(smUser));
|
||||
} catch (Exception e) {
|
||||
|
||||
+3
-3
@@ -107,7 +107,7 @@ public class CBEmbeddedSecurityController implements SMAdminController, SMAuthen
|
||||
// Users
|
||||
|
||||
@Override
|
||||
public void createUser(String userId, Map<String, String> metaParameters) throws DBException {
|
||||
public void createUser(String userId, Map<String, String> metaParameters, boolean enabled) throws DBException {
|
||||
if (isSubjectExists(userId)) {
|
||||
throw new DBCException("User or role '" + userId + "' already exists");
|
||||
}
|
||||
@@ -116,7 +116,7 @@ public class CBEmbeddedSecurityController implements SMAdminController, SMAuthen
|
||||
createAuthSubject(dbCon, userId, SUBJECT_USER);
|
||||
try (PreparedStatement dbStat = dbCon.prepareStatement("INSERT INTO CB_USER(USER_ID,IS_ACTIVE,CREATE_TIME) VALUES(?,?,?)")) {
|
||||
dbStat.setString(1, userId);
|
||||
dbStat.setString(2, CHAR_BOOL_TRUE);
|
||||
dbStat.setString(2, enabled ? CHAR_BOOL_TRUE : CHAR_BOOL_FALSE);
|
||||
dbStat.setTimestamp(3, new Timestamp(System.currentTimeMillis()));
|
||||
dbStat.execute();
|
||||
}
|
||||
@@ -1360,7 +1360,7 @@ public class CBEmbeddedSecurityController implements SMAdminController, SMAuthen
|
||||
userId = userIdFromCredentials;
|
||||
if (!isSubjectExists(userId)) {
|
||||
var newUser = new SMUser(userId);
|
||||
createUser(newUser.getUserId(), newUser.getMetaParameters());
|
||||
createUser(newUser.getUserId(), newUser.getMetaParameters(), true);
|
||||
String defaultRoleName = WebAppUtils.getWebApplication().getAppConfiguration().getDefaultUserRole();
|
||||
if (!CommonUtils.isEmpty(defaultRoleName)) {
|
||||
setUserRoles(userId, new String[]{defaultRoleName}, userId);
|
||||
|
||||
+1
-1
@@ -246,7 +246,7 @@ public class CBDatabase {
|
||||
|
||||
if (adminUser == null) {
|
||||
adminUser = new SMUser(adminName);
|
||||
adminSecurityController.createUser(adminUser.getUserId(), adminUser.getMetaParameters());
|
||||
adminSecurityController.createUser(adminUser.getUserId(), adminUser.getMetaParameters(), true);
|
||||
}
|
||||
|
||||
if (!CommonUtils.isEmpty(adminPassword)) {
|
||||
|
||||
Reference in New Issue
Block a user