Version 4.5.0
This commit is contained in:
1 parent
1a0c7fd3c2
commit
f79dcf067a
3791 files changed
+248032
-76372
No files matched your search
@@ -12,7 +12,7 @@
|
||||
namespace IPS\nexus\modules\admin\payments;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
@@ -23,6 +23,11 @@ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
*/
|
||||
class _transactions extends \IPS\Dispatcher\Controller
|
||||
{
|
||||
/**
|
||||
* @brief Has been CSRF-protected
|
||||
*/
|
||||
public static $csrfProtected = TRUE;
|
||||
|
||||
/**
|
||||
* Execute
|
||||
*
|
||||
@@ -45,7 +50,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
/* Create Table */
|
||||
$table = \IPS\nexus\Transaction::table( array( array( 't_status<>?', \IPS\nexus\Transaction::STATUS_PENDING ) ), \IPS\Http\Url::internal( 'app=nexus&module=payments&controller=transactions' ), 't' );
|
||||
$table->filters = array(
|
||||
'trans_attention_required' => array( '( t_status=? OR t_status=? OR t_status=? )', \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_DISPUTED ),
|
||||
'trans_attention_required' => array( \IPS\Db::i()->in( 't_status', array( \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_DISPUTED ) ) ),
|
||||
);
|
||||
$table->advancedSearch = array(
|
||||
't_id' => \IPS\Helpers\Table\SEARCH_CONTAINS_TEXT,
|
||||
@@ -96,6 +101,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
public function approve()
|
||||
{
|
||||
\IPS\Dispatcher::i()->checkAcpPermission( 'transactions_edit' );
|
||||
\IPS\Session::i()->csrfCheck();
|
||||
|
||||
/* Load Transaction */
|
||||
try
|
||||
@@ -109,7 +115,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
$method = $transaction->method;
|
||||
|
||||
/* Can we approve it? */
|
||||
if ( !in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_GATEWAY_PENDING ) ) )
|
||||
if ( !\in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_GATEWAY_PENDING, \IPS\nexus\Transaction::STATUS_DISPUTED ) ) )
|
||||
{
|
||||
\IPS\Output::i()->error( 'transaction_status_err', '2X186/A', 403, '' );
|
||||
}
|
||||
@@ -127,7 +133,10 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
/* Do it */
|
||||
try
|
||||
{
|
||||
$transaction->capture();
|
||||
if ( $transaction->status !== \IPS\nexus\Transaction::STATUS_DISPUTED )
|
||||
{
|
||||
$transaction->capture();
|
||||
}
|
||||
$transaction->approve( \IPS\Member::loggedIn() );
|
||||
}
|
||||
catch ( \LogicException $e )
|
||||
@@ -141,9 +150,16 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
|
||||
/* Send Email */
|
||||
$transaction->sendNotification();
|
||||
|
||||
|
||||
/* Redirect */
|
||||
$this->_redirect( $transaction );
|
||||
if ( \IPS\Request::i()->isAjax() and \IPS\Request::i()->queueStatus )
|
||||
{
|
||||
\IPS\Output::i()->json( array( 'message' => \IPS\Member::loggedIn()->language()->addToStack('tstatus_okay_set'), 'queue' => \IPS\nexus\extensions\core\AdminNotifications\Transaction::queueHtml( \IPS\Request::i()->queueStatus ) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_redirect( $transaction );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -154,6 +170,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
public function review()
|
||||
{
|
||||
\IPS\Dispatcher::i()->checkAcpPermission( 'transactions_edit' );
|
||||
\IPS\Session::i()->csrfCheck();
|
||||
|
||||
/* Load Transaction */
|
||||
try
|
||||
@@ -167,7 +184,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
$method = $transaction->method;
|
||||
|
||||
/* Can we flag it? */
|
||||
if ( !in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_HELD ) ) )
|
||||
if ( !\in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_HELD ) ) )
|
||||
{
|
||||
\IPS\Output::i()->error( 'transaction_status_err', '2X186/B', 403, '' );
|
||||
}
|
||||
@@ -189,6 +206,9 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
) );
|
||||
}
|
||||
|
||||
/* Notification */
|
||||
\IPS\core\AdminNotification::send( 'nexus', 'Transaction', \IPS\nexus\Transaction::STATUS_REVIEW, TRUE, $transaction );
|
||||
|
||||
/* Create a support request? */
|
||||
if ( \IPS\Settings::i()->nexus_revw_sa != -1 )
|
||||
{
|
||||
@@ -214,7 +234,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
else
|
||||
{
|
||||
$_SESSION["wizard-{$key}-data"] = $extraData;
|
||||
if ( count( \IPS\nexus\Support\StockAction::roots() ) )
|
||||
if ( \count( \IPS\nexus\Support\StockAction::roots() ) )
|
||||
{
|
||||
$_SESSION["wizard-{$key}-step"] = 'stock_action';
|
||||
}
|
||||
@@ -231,7 +251,14 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
}
|
||||
|
||||
/* Redirect */
|
||||
$this->_redirect( $transaction );
|
||||
if ( \IPS\Request::i()->isAjax() and \IPS\Request::i()->queueStatus )
|
||||
{
|
||||
\IPS\Output::i()->json( array( 'message' => \IPS\Member::loggedIn()->language()->addToStack('tstatus_revw_set'), 'queue' => \IPS\nexus\extensions\core\AdminNotifications\Transaction::queueHtml( \IPS\Request::i()->queueStatus ) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_redirect( $transaction );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -242,6 +269,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
public function void()
|
||||
{
|
||||
\IPS\Dispatcher::i()->checkAcpPermission( 'transactions_edit' );
|
||||
\IPS\Session::i()->csrfCheck();
|
||||
|
||||
/* Load Transaction */
|
||||
try
|
||||
@@ -255,7 +283,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
$method = $transaction->method;
|
||||
|
||||
/* Can we void it? */
|
||||
if ( !in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_GATEWAY_PENDING ) ) and ( !$transaction->auth or !in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW ) ) ) )
|
||||
if ( !\in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_WAITING, \IPS\nexus\Transaction::STATUS_GATEWAY_PENDING ) ) and ( !$transaction->auth or !\in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW ) ) ) )
|
||||
{
|
||||
\IPS\Output::i()->error( 'transaction_status_err', '2X186/5', 403, '' );
|
||||
}
|
||||
@@ -277,7 +305,14 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
$transaction->sendNotification();
|
||||
|
||||
/* Redirect */
|
||||
$this->_redirect( $transaction );
|
||||
if ( \IPS\Request::i()->isAjax() and \IPS\Request::i()->queueStatus )
|
||||
{
|
||||
\IPS\Output::i()->json( array( 'message' => \IPS\Member::loggedIn()->language()->addToStack('tstatus_fail_set'), 'queue' => \IPS\nexus\extensions\core\AdminNotifications\Transaction::queueHtml( \IPS\Request::i()->queueStatus ) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_redirect( $transaction );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -301,7 +336,7 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
$method = $transaction->method;
|
||||
|
||||
/* Can we refund it? */
|
||||
if ( !in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_PAID, \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_PART_REFUNDED ) ) )
|
||||
if ( !\in_array( $transaction->status, array( \IPS\nexus\Transaction::STATUS_PAID, \IPS\nexus\Transaction::STATUS_HELD, \IPS\nexus\Transaction::STATUS_REVIEW, \IPS\nexus\Transaction::STATUS_PART_REFUNDED, \IPS\nexus\Transaction::STATUS_DISPUTED ) ) )
|
||||
{
|
||||
\IPS\Output::i()->error( 'transaction_status_err', '2X186/E', 403, '' );
|
||||
}
|
||||
@@ -567,6 +602,10 @@ class _transactions extends \IPS\Dispatcher\Controller
|
||||
case 't':
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=nexus&module=payments&controller=transactions') );
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal('app=core&module=overview&controller=notifications') );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user