package org.basex.examples.server;
import org.basex.core.*;
import org.basex.core.cmd.*;
/**
* This class presents methods to directly access
* core maintenance and administration features.
*
* @author BaseX Team 2005-17, BSD License
*/
public final class UserExample {
/**
* Runs the example code.
* @param args (ignored) command-line arguments
* @throws BaseXException if a database command fails
*/
public static void main(final String... args) throws BaseXException {
/** Database context. */
final Context context = new Context();
System.out.println("=== UserExample ===");
// Create a database
System.out.println("\n* Create a database.");
new CreateDB("input", "src/main/resources/xml/input.xml").execute(context);
// Create a new user with password 'password' (MD5 encoded)
System.out.println("\n* Create a user.");
new CreateUser("testuser", "5f4dcc3b5aa765d61d8327deb882cf99").execute(context);
// Remove global user rights
System.out.println("\n* Remove global user rights.");
new Grant("NONE", "testuser").execute(context);
// Grant local user rights on database 'input'
System.out.println("\n* Grant local user rights.");
new Grant("WRITE", "testuser", "input").execute(context);
// Show global users
System.out.println("\n* Show global users.");
System.out.print(new ShowUsers().execute(context));
// Show local users on a single database
System.out.println("\n* Show local users.");
System.out.print(new ShowUsers("input").execute(context));
// Change user password to 'new'
System.out.println("\n* Alter a user's password.");
new AlterPassword("testuser", "new").execute(context);
// Drop the database and user
System.out.println("\n* Drop the user and database.");
new DropUser("testuser").execute(context);
new DropDB("input").execute(context);
// Close the database context
context.close();
}
}