$ret = new stdClass();
$ret->actions = array();
+ $context = get_context_instance(CONTEXT_COURSE, $order->courseid);
+
if (intval($order->transid) == 0) { // test transaction or new order
if ($order->timecreated < $newordertime) {
- if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
+ if (has_capability('enrol/authorize:managepayments', $context)) {
$ret->actions = array(ORDER_DELETE);
}
$ret->status = 'tested';
switch ($order->status) {
case AN_STATUS_AUTH:
if (authorize_expired($order)) {
- if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
+ if (has_capability('enrol/authorize:managepayments', $context)) {
$ret->actions = array(ORDER_DELETE);
}
$ret->status = 'expired';
}
else {
- if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
+ if (has_capability('enrol/authorize:managepayments', $context)) {
$ret->actions = array(ORDER_CAPTURE, ORDER_VOID);
}
$ret->status = 'authorizedpendingcapture';
case AN_STATUS_AUTHCAPTURE:
if (authorize_settled($order)) {
- if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
+ if (has_capability('enrol/authorize:managepayments', $context)) {
$ret->actions = array(ORDER_REFUND);
}
$ret->status = 'capturedsettled';
}
else {
- if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
+ if (has_capability('enrol/authorize:managepayments', $context)) {
$ret->actions = array(ORDER_VOID);
}
$ret->status = 'capturedpendingsettle';
$ret->status = 'settled';
}
else {
- if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
+ if (has_capability('enrol/authorize:managepayments', $context)) {
$ret->actions = array(ORDER_VOID);
}
$ret->status = 'refunded';
return $ret;
case AN_STATUS_EXPIRE:
- if (isadmin() || (!empty($CFG->an_teachermanagepay) && isteacher($order->courseid))) {
+ if (has_capability('enrol/authorize:managepayments', $context)) {
$ret->actions = array(ORDER_DELETE);
}
$ret->status = 'expired';