use of lotus.domino.ACL in project org.openntf.xsp.jakartaee by OpenNTF.
the class PostInstallFactory method getServices.
@Override
public HttpService[] getServices(LCDEnvironment env) {
System.out.println("postinstall start");
try {
Session session = NotesFactory.createSession();
try {
for (String nsfName : NSFS) {
Database database = session.getDatabase("", nsfName);
if (database == null || !database.isOpen()) {
throw new RuntimeException("Could not find " + nsfName);
}
ACL acl = database.getACL();
ACLEntry anon = acl.getEntry("Anonymous");
if (anon == null) {
anon = acl.createACLEntry("Anonymous", ACL.LEVEL_AUTHOR);
} else {
anon.setLevel(ACL.LEVEL_AUTHOR);
}
ACLEntry admin = acl.createACLEntry("CN=Jakarta EE Test/O=OpenNTFTest", ACL.LEVEL_MANAGER);
try {
admin.enableRole("[Admin]");
} catch (NotesException e) {
// Failing here is fine, in case the NSF doesn't have the role
}
acl.save();
database.getView("Persons");
session.sendConsoleCommand("", "load updall " + nsfName);
}
session.sendConsoleCommand("", "tell http osgi diag");
} finally {
session.recycle();
}
} catch (NotesException e) {
e.printStackTrace();
} finally {
System.out.println("Done with postinstall");
}
return new HttpService[0];
}
use of lotus.domino.ACL in project org.openntf.xsp.jakartaee by OpenNTF.
the class DefaultDominoDocumentCollectionManager method getQrpDatabase.
private Database getQrpDatabase(Session session, Database database) throws NotesException {
String server = database.getServer();
String filePath = database.getFilePath();
try {
// $NON-NLS-1$
String fileName = md5(server + filePath) + ".nsf";
Path tempDir = getTempDirectory();
Path dest = tempDir.resolve(getClass().getPackage().getName());
Files.createDirectories(dest);
Path dbPath = dest.resolve(fileName);
// $NON-NLS-1$
Database qrp = session.getDatabase("", dbPath.toString());
if (!qrp.isOpen()) {
qrp.recycle();
DbDirectory dbDir = session.getDbDirectory(null);
// TODO encrypt when the API allows
qrp = dbDir.createDatabase(dbPath.toString(), true);
ACL acl = qrp.getACL();
ACLEntry entry = acl.createACLEntry(session.getEffectiveUserName(), ACL.LEVEL_MANAGER);
entry.setCanDeleteDocuments(true);
acl.save();
}
return qrp;
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
Aggregations