Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions console/src/main/java/com/arcadedb/console/Console.java
Original file line number Diff line number Diff line change
Expand Up @@ -467,16 +467,25 @@ private void executeCreateUser(final String params) {
checkHasSpaces("User name", userName);

final String password;
final List<String> databases;
HashMap<String,String> databases = new HashMap<String,String>();

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my suggestion:
final Map<String,String>...


if (databasesByPos > -1) {
password = params.substring(identifiedByPos + "IDENTIFIED BY".length() + 1, databasesByPos).trim();
final String databasesList = params.substring(databasesByPos + " GRANT CONNECT TO ".length()).trim();
final String[] databasesArray = databasesList.split(",");
databases = List.of(databasesArray);
final List<String> databasesName = List.of(databasesArray);
for (final String db : databasesName) {
final int colonPos = db.indexOf(":");
if (colonPos > -1) {
final String dbname = db.substring(0,colonPos -1).trim();
final String dbgroup = db.substring(colonPos + 1).trim();
databases.put(dbname,dbgroup);
} else {
databases.put(db,"admin");
}
}
} else {
password = params.substring(identifiedByPos + "IDENTIFIED BY".length() + 1).trim();
databases = new ArrayList<>();
}

checkIsEmpty("User password", password);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ public void testUserMgmt() throws IOException {
}

Assertions.assertTrue(console.parse("create user elon identified by musk grant connect to db1"));
Assertions.assertTrue(console.parse("create user jeff identified by amazon grant connect to db1:readonly"));
Assertions.assertTrue(console.parse("drop user elon"));
}

Expand Down
16 changes: 13 additions & 3 deletions network/src/main/java/com/arcadedb/remote/RemoteServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public String toString() {
return protocol + "://" + currentServer + ":" + currentPort;
}

public void createUser(final String userName, final String password, final List<String> databases) {
public void createUser(final String userName, final String password, final HashMap<String,String> databases) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

again, prefer interface:
final Map<String,String

try {
final HttpURLConnection connection = createConnection("POST", getUrl("server"));

Expand All @@ -83,8 +83,8 @@ public void createUser(final String userName, final String password, final List<
jsonUser.put("password", password);
if (databases != null && !databases.isEmpty()) {
final JSONObject databasesJson = new JSONObject();
for (final String dbName : databases)
databasesJson.put(dbName, new String[] { "admin" });
for (Map.Entry<String, String> entry : databases.entrySet())
databasesJson.put(entry.getKey(), new String[] { entry.getValue() });
jsonUser.put("databases", databasesJson);
}

Expand All @@ -101,6 +101,16 @@ public void createUser(final String userName, final String password, final List<
}
}

public void createUser(final String userName, final String password, final List<String> databases) {

HashMap<String,String> databasesWithGroups = new HashMap<String, String>();

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

again:
Map<String,String> databasesWithGroups = new HashMap<String, String>();


for (final String dbName : databases)
databasesWithGroups.put(dbName, "admin");

createUser(userName, password, databasesWithGroups);
}

public void dropUser(final String userName) {
try {
final HttpURLConnection connection = createConnection("POST", getUrl("server"));
Expand Down