From 4654eb2a446f64c66233b7bc38cc2a9b7bf151cc Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 6 Oct 2011 17:41:54 -0300 Subject: Coding muamba_recover() and misc fixes --- muamba.business.inc | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'muamba.business.inc') diff --git a/muamba.business.inc b/muamba.business.inc index 9d17f92..852add6 100644 --- a/muamba.business.inc +++ b/muamba.business.inc @@ -269,23 +269,38 @@ function muamba_return($mid) { * * @param $mid * Transaction id. - * - * @todo */ function muamba_recover($mid) { global $user; + $mid = (int) $mid; + $transaction = muamba_get_transaction($mid); + $node = node_load($transaction['nid']); - // TODO: load nid from db - $nid = (int) $nid; - $node = node_load($nid); - - if (!$node || $node->type != MUAMBA_NODE_TYPE) { + // Access check + if (!muamba_has_management_access($node)) { drupal_not_found(); } - if ($node->uid != $user->uid) { - // TODO: not node owner + // Status check + if ($transaction['status'] != MUAMBA_ACCEPTED || + $transaction['status'] != MUAMBA_RETURNED || + $transaction['status'] != MUAMBA_LOST) { + drupal_not_found(); } + + // Update database + $update = db_update('muamba') + ->fields(array( + 'status' => MUAMBA_RECOVERED, + )) + ->condition('mid', $mid, '=') + ->execute(); + + // Notify item owner + $message = theme('muamba_recover_message', array('transaction' => $transaction)); + $reply = privatemsg_reply($transaction['thread_id'], $message); + + return t('Recovered item.'); } /** -- cgit v1.2.3