use of com.runwaysdk.dataaccess.transaction.Transaction in project geoprism-registry by terraframe.
the class MasterListVersion method updateRecord.
@Transaction
public void updateRecord(ServerGeoObjectIF object) {
object.setDate(this.getForDate());
// Delete tile cache
TileCache.deleteTiles(this);
MasterList masterlist = this.getMasterlist();
MdBusinessDAO mdBusiness = MdBusinessDAO.get(this.getMdBusinessOid()).getBusinessDAO();
Collection<Locale> locales = LocalizationFacade.getInstalledLocales();
// Add the type ancestor fields
ServerGeoObjectType type = ServerGeoObjectType.get(masterlist.getUniversal());
Set<ServerHierarchyType> hierarchiesOfSubTypes = type.getHierarchiesOfSubTypes();
Map<ServerHierarchyType, List<ServerGeoObjectType>> ancestorMap = masterlist.getAncestorMap(type);
Collection<AttributeType> attributes = type.getAttributeMap().values();
BusinessQuery query = new QueryFactory().businessQuery(mdBusiness.definesType());
query.WHERE(query.aCharacter(DefaultAttribute.CODE.getName()).EQ(object.getCode()));
List<Business> records = query.getIterator().getAll();
for (Business record : records) {
try {
record.appLock();
this.publish(object, record, attributes, ancestorMap, hierarchiesOfSubTypes, locales);
} finally {
record.unlock();
}
}
}
use of com.runwaysdk.dataaccess.transaction.Transaction in project geoprism-registry by terraframe.
the class UndirectedGraphType method delete.
@Override
@Transaction
public void delete() {
MdEdge mdEdge = this.getMdEdge();
super.delete();
mdEdge.delete();
}
use of com.runwaysdk.dataaccess.transaction.Transaction in project geoprism-registry by terraframe.
the class UserInfo method lockByUser.
@Transaction
public static JSONObject lockByUser(String userId) {
GeoprismUser user = GeoprismUser.lock(userId);
UserInfo info = UserInfo.getByUser(user);
if (info != null) {
info.lock();
}
return UserInfo.serialize(user, info);
}
use of com.runwaysdk.dataaccess.transaction.Transaction in project geoprism-registry by terraframe.
the class RegistryAccountUtil method initiateInTrans.
@Transaction
public static void initiateInTrans(String sInvite, String roleIds) {
if (roleIds == null || roleIds.length() == 0 || JsonParser.parseString(roleIds).getAsJsonArray().size() == 0) {
// TODO : Better Error
throw new AttributeValueException("You're attempting to invite a user with zero roles?", "");
}
JSONObject joInvite = new JSONObject(sInvite);
String email = joInvite.getString("email");
UserInvite invite = new UserInvite();
invite.setEmail(email);
UserInviteQuery query = new UserInviteQuery(new QueryFactory());
query.WHERE(query.getEmail().EQi(invite.getEmail()));
OIterator<? extends UserInvite> it = query.getIterator();
while (it.hasNext()) {
it.next().delete();
}
invite.setStartTime(new Date());
invite.setToken(generateEncryptedToken(invite.getEmail()));
invite.setRoleIds(roleIds);
invite.apply();
RegistryAccountUtil.sendEmail(invite, roleIds);
}
use of com.runwaysdk.dataaccess.transaction.Transaction in project geoprism-registry by terraframe.
the class RegistryAccountUtil method inviteCompleteInTrans.
@Transaction
private static void inviteCompleteInTrans(java.lang.String token, String json) {
UserInviteQuery query = new UserInviteQuery(new QueryFactory());
query.WHERE(query.getToken().EQ(token));
OIterator<? extends UserInvite> reqIt = query.getIterator();
UserInvite invite;
if (reqIt.hasNext()) {
invite = reqIt.next();
invite.appLock();
} else {
throw new InvalidUserInviteToken();
}
if ((System.currentTimeMillis() - invite.getStartTime().getTime()) > (GeoprismProperties.getInviteUserTokenExpireTime() * 3600000)) {
throw new InvalidUserInviteToken();
}
JsonObject account = JsonParser.parseString(json).getAsJsonObject();
if (invite.getRoleIds().length() > 0) {
JsonArray array = JsonParser.parseString(invite.getRoleIds()).getAsJsonArray();
List<String> list = new LinkedList<String>();
for (int i = 0; i < array.size(); i++) {
list.add(array.get(i).getAsString());
}
UserInfo.applyUserWithRoles(account, list.toArray(new String[list.size()]), true);
} else {
UserInfo.applyUserWithRoles(account, new String[] {}, true);
}
invite.delete();
logger.info("User [" + account.get(GeoprismUser.USERNAME) + "] has been created via a user invite.");
}
Aggregations