use of org.olat.resource.accesscontrol.AccessTransaction in project OpenOLAT by OpenOLAT.
the class PaypalManagerImpl method completeTransactionSucessfully.
private void completeTransactionSucessfully(PaypalTransaction trx, String trxStatus) {
Order order = orderManager.loadOrderByNr(trx.getRefNo());
if ("PENDING".equalsIgnoreCase(trxStatus)) {
updateTransaction(trx, PaypalTransactionStatus.PENDING);
} else {
updateTransaction(trx, PaypalTransactionStatus.SUCCESS);
}
order = orderManager.save(order, OrderStatus.PAYED);
PaypalAccessMethod method = getMethodSecure(trx.getMethodId());
if (order.getKey().equals(trx.getOrderId())) {
// make accessible
Identity identity = order.getDelivery();
for (OrderPart part : order.getParts()) {
if (part.getKey().equals(trx.getOrderPartId())) {
AccessTransaction transaction = transactionManager.createTransaction(order, part, method);
transaction = transactionManager.save(transaction);
for (OrderLine line : part.getOrderLines()) {
if (acService.allowAccesToResource(identity, line.getOffer())) {
log.audit("Paypal payed access granted for: " + buildLogMessage(line, method) + " to " + identity, null);
transaction = transactionManager.update(transaction, AccessTransactionStatus.SUCCESS);
} else {
log.error("Paypal payed access refused for: " + buildLogMessage(line, method) + " to " + identity, null);
transaction = transactionManager.update(transaction, AccessTransactionStatus.ERROR);
}
}
}
}
} else {
log.error("Order not in sync with PaypalTransaction", null);
}
}
use of org.olat.resource.accesscontrol.AccessTransaction in project OpenOLAT by OpenOLAT.
the class AccessMethodRenderer method render.
@Override
public void render(StringOutput sb, Renderer renderer, Object val, Locale locale, int alignment, String action) {
if (val instanceof AccessTransaction) {
AccessTransaction transaction = (AccessTransaction) val;
Set<String> uniqueType = new HashSet<String>(3);
render(sb, transaction, uniqueType, locale);
} else if (val instanceof Collection) {
Collection<?> transactions = (Collection<?>) val;
Set<String> uniqueType = new HashSet<String>((transactions.size() * 2) + 1);
for (Object transaction : transactions) {
if (transaction instanceof AccessTransaction) {
render(sb, (AccessTransaction) transaction, uniqueType, locale);
} else if (transaction instanceof AccessMethod) {
render(sb, (AccessMethod) transaction, uniqueType, locale);
}
}
}
}
use of org.olat.resource.accesscontrol.AccessTransaction in project OpenOLAT by OpenOLAT.
the class AccessMethodRenderer method render.
@Override
public void render(Renderer renderer, StringOutput sb, Object val, int row, FlexiTableComponent source, URLBuilder ubu, Translator translator) {
if (val instanceof AccessTransaction) {
AccessTransaction transaction = (AccessTransaction) val;
Set<String> uniqueType = new HashSet<String>(3);
render(sb, transaction, uniqueType, translator.getLocale());
} else if (val instanceof Collection) {
Collection<?> transactions = (Collection<?>) val;
Set<String> uniqueType = new HashSet<String>((transactions.size() * 2) + 1);
for (Object transaction : transactions) {
if (transaction instanceof AccessTransaction) {
render(sb, (AccessTransaction) transaction, uniqueType, translator.getLocale());
} else if (transaction instanceof AccessMethod) {
render(sb, (AccessMethod) transaction, uniqueType, translator.getLocale());
}
}
}
}
use of org.olat.resource.accesscontrol.AccessTransaction in project OpenOLAT by OpenOLAT.
the class ACFrontendManager method accessResource.
@Override
public AccessResult accessResource(Identity identity, OfferAccess link, Object argument) {
if (link == null || link.getOffer() == null || link.getMethod() == null) {
log.audit("Access refused (no offer) to: " + link + " for " + identity);
return new AccessResult(false);
}
AccessMethodHandler handler = accessModule.getAccessMethodHandler(link.getMethod().getType());
if (handler == null) {
log.audit("Access refused (no handler method) to: " + link + " for " + identity);
return new AccessResult(false);
}
if (handler.checkArgument(link, argument)) {
if (allowAccesToResource(identity, link.getOffer())) {
Order order = orderManager.saveOneClick(identity, link);
AccessTransaction transaction = transactionManager.createTransaction(order, order.getParts().get(0), link.getMethod());
transactionManager.save(transaction);
dbInstance.commit();
log.audit("Access granted to: " + link + " for " + identity);
return new AccessResult(true);
} else {
log.audit("Access error to: " + link + " for " + identity);
}
} else {
log.audit("Access refused to: " + link + " for " + identity);
}
return new AccessResult(false);
}
use of org.olat.resource.accesscontrol.AccessTransaction in project OpenOLAT by OpenOLAT.
the class TransactionDetailsController method initForm.
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
String page = velocity_root + "/transaction_details.html";
FormLayoutContainer detailsLayout = FormLayoutContainer.createCustomFormLayout("transaction-details-layout", getTranslator(), page);
formLayout.add(detailsLayout);
detailsLayout.setRootForm(mainForm);
AccessTransaction transaction = wrapper.getTransaction();
DetailsForm detailsForm = new DetailsForm(ureq, getWindowControl(), transaction, mainForm);
detailsLayout.add("simple", detailsForm.getInitialFormItem());
AccessMethod method = transaction.getMethod();
AccessMethodHandler handler = acModule.getAccessMethodHandler(method.getType());
FormController controller = handler.createTransactionDetailsController(ureq, getWindowControl(), order, wrapper.getPart(), method, mainForm);
if (controller != null) {
uifactory.addSpacerElement("details-spacer", detailsLayout, false);
detailsLayout.add("custom", controller.getInitialFormItem());
}
}
Aggregations