use of org.bimserver.database.DatabaseSession in project BIMserver by opensourceBIM.
the class AdminServiceImpl method setup.
@Override
public void setup(String siteAddress, String serverName, String serverDescription, String serverIcon, String adminName, String adminUsername, String adminPassword) throws ServerException, UserException {
SettingsInterface settingsInterface = getServiceMap().get(SettingsInterface.class);
if (!siteAddress.startsWith("http://") && !siteAddress.startsWith("https://")) {
throw new UserException("Site address should start with \"http://\" or \"https://\"");
}
if (siteAddress.startsWith("http://http://") || siteAddress.startsWith("https://https://")) {
throw new UserException("Site address should not have duplicate protocols");
}
settingsInterface.setSiteAddress(siteAddress);
settingsInterface.setServerName(serverName);
settingsInterface.setServerDescription(serverDescription);
settingsInterface.setServerIcon(serverIcon);
if (adminUsername.trim().isEmpty()) {
throw new UserException("Admin Username cannot be empty");
}
if (adminPassword.trim().isEmpty()) {
throw new UserException("Admin Password cannot be empty");
}
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
AddUserDatabaseAction addUserDatabaseAction = new AddUserDatabaseAction(getBimServer(), session, AccessMethod.INTERNAL, adminUsername, adminPassword, adminName, UserType.ADMIN, getAuthorization(), false, "");
session.executeAndCommitAction(addUserDatabaseAction);
} catch (BimserverDatabaseException e) {
LOGGER.error("", e);
} finally {
session.close();
}
getBimServer().getServerInfoManager().update();
}
use of org.bimserver.database.DatabaseSession in project BIMserver by opensourceBIM.
the class AuthServiceImpl method setHash.
@Override
public void setHash(Long uoid, byte[] hash, byte[] salt) throws ServerException, UserException {
requireAdminAuthentication();
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
User user = session.get(uoid, OldQuery.getDefault());
user.setPasswordHash(hash);
user.setPasswordSalt(salt);
session.commit();
} catch (Exception e) {
handleException(e);
} finally {
session.close();
}
}
use of org.bimserver.database.DatabaseSession in project BIMserver by opensourceBIM.
the class LowLevelServiceImpl method getDataObjectByGuid.
@Override
public SDataObject getDataObjectByGuid(Long roid, String guid) throws ServerException, UserException {
requireAuthenticationAndRunningServer();
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
BimDatabaseAction<DataObject> action = new GetDataObjectByGuidDatabaseAction(getBimServer(), session, getInternalAccessMethod(), roid, guid, getAuthorization());
SDataObject dataObject = getBimServer().getSConverter().convertToSObject(session.executeAndCommitAction(action));
return dataObject;
} catch (Exception e) {
return handleException(e);
} finally {
session.close();
}
}
use of org.bimserver.database.DatabaseSession in project BIMserver by opensourceBIM.
the class LowLevelServiceImpl method getDataObjectByOid.
@Override
public SDataObject getDataObjectByOid(Long roid, Long oid) throws ServerException, UserException {
requireAuthenticationAndRunningServer();
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
BimDatabaseAction<DataObject> action = new GetDataObjectByOidDatabaseAction(getBimServer(), session, getInternalAccessMethod(), roid, oid, getAuthorization());
SDataObject dataObject = getBimServer().getSConverter().convertToSObject(session.executeAndCommitAction(action));
return dataObject;
} catch (Exception e) {
return handleException(e);
} finally {
session.close();
}
}
use of org.bimserver.database.DatabaseSession in project BIMserver by opensourceBIM.
the class LowLevelServiceImpl method getReferences.
@SuppressWarnings("unchecked")
@Override
public List<Long> getReferences(Long tid, Long oid, String referenceName) throws ServerException, UserException {
DatabaseSession session = getBimServer().getDatabase().createSession();
try {
LongTransaction transaction = getBimServer().getLongTransactionManager().get(tid);
EClass eClass = session.getEClassForOid(oid);
IdEObject object = session.get(eClass, oid, new OldQuery(transaction.getPackageMetaData(), transaction.getPid(), transaction.getRid(), transaction.getRoid(), null, Deep.NO));
if (object == null) {
throw new UserException("No object of type " + eClass.getName() + " with oid " + oid + " found");
}
List<IdEObject> list = (List<IdEObject>) object.eGet(object.eClass().getEStructuralFeature(referenceName));
List<Long> oidList = new ArrayList<Long>();
for (IdEObject idEObject : list) {
oidList.add(idEObject.getOid());
}
return oidList;
} catch (Exception e) {
return handleException(e);
} finally {
session.close();
}
}
Aggregations