]> gitweb.fluxo.info Git - drupal/muamba.git/commitdiff
Coding muamba_reject()
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 6 Oct 2011 20:18:53 +0000 (17:18 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 6 Oct 2011 20:18:53 +0000 (17:18 -0300)
muamba.business.inc
muamba.module
muamba.theme.inc

index cd9dc5d9a3112e89c5fa979f9e5d897d8e25a37c..9d17f920ac006685469ca17bced6cc11f236a4cc 100644 (file)
@@ -127,7 +127,10 @@ function muamba_request($nid) {
     return t('The item owner has blocked you from asking this item.');
   }
 
-  // TODO: check if the item is available
+  // Check if the item is available
+  if (!muamba_check_availability($nid)) {
+    return t('Item not available');
+  }
 
   // Check if user already requested the item
   if (muamba_check_user_request($nid, $user->uid)) {
@@ -175,7 +178,7 @@ function muamba_accept($mid) {
   global $user;
   $mid         = (int) $mid;
   $transaction = muamba_get_transaction($mid);
-  $node        = node_load($transaction->nid);
+  $node        = node_load($transaction['nid']);
 
   // Access check
   if (!muamba_has_management_access($node)) {
@@ -183,7 +186,7 @@ function muamba_accept($mid) {
   }
 
   // Status check
-  if ($transaction->status != MUAMBA_REQUESTED) {
+  if ($transaction['status'] != MUAMBA_REQUESTED) {
     drupal_not_found();
   }
 
@@ -207,10 +210,36 @@ function muamba_accept($mid) {
  *
  * @param $mid
  *   Transaction id.
- *
- * @todo
  */
 function muamba_reject($mid) {
+  global $user;
+  $mid         = (int) $mid;
+  $transaction = muamba_get_transaction($mid);
+  $node        = node_load($transaction['nid']);
+
+  // Access check
+  if (!muamba_has_management_access($node)) {
+    drupal_not_found();
+  }
+
+  // Status check
+  if ($transaction['status'] != MUAMBA_REQUESTED) {
+    drupal_not_found();
+  }
+
+  // Update database
+  $update = db_update('muamba')
+    ->fields(array(
+      'status' => MUAMBA_REJECTED,
+    ))
+    ->condition('mid', $mid, '=')
+    ->execute();
+
+  // Notify item owner
+  $message = theme('muamba_reject_message', array('transaction' => $transaction));
+  $reply   = privatemsg_reply($transaction['thread_id'], $message);
+
+  return t('Rejected item request.');
 }
 
 /**
index 5a92f350fd5ee74c4ca79016bc4550a53d2ef88c..de1724c4e43a97356e098b58585a9c19f3f11aed 100644 (file)
@@ -57,7 +57,7 @@ function muamba_menu() {
   $items['muamba/accept'] = array(
     'title'            => 'Accept an item request',
     'page callback'    => 'muamba_accept',
-    'access arguments' => array('accept item'),
+    'access arguments' => array('access content'),
     'type'             => MENU_SUGGESTED_ITEM,
     'file'             => 'muamba.business.inc',
   );
@@ -65,7 +65,7 @@ function muamba_menu() {
   $items['muamba/reject'] = array(
     'title'            => 'Reject an item request',
     'page callback'    => 'muamba_reject',
-    'access arguments' => array('reject item'),
+    'access arguments' => array('access content'),
     'type'             => MENU_SUGGESTED_ITEM,
     'file'             => 'muamba.business.inc',
   );
@@ -73,7 +73,7 @@ function muamba_menu() {
   $items['muamba/cancel'] = array(
     'title'            => 'Cancel a request',
     'page callback'    => 'muamba_cancel',
-    'access arguments' => array('cancel item'),
+    'access arguments' => array('access content'),
     'type'             => MENU_SUGGESTED_ITEM,
     'file'             => 'muamba.business.inc',
   );
@@ -89,7 +89,7 @@ function muamba_menu() {
   $items['muamba/return'] = array(
     'title'            => 'Return an item',
     'page callback'    => 'muamba_return',
-    'access arguments' => array('return item'),
+    'access arguments' => array('access content'),
     'type'             => MENU_SUGGESTED_ITEM,
     'file'             => 'muamba.business.inc',
   );
@@ -97,7 +97,7 @@ function muamba_menu() {
   $items['muamba/lost'] = array(
     'title'            => 'Report a lost item',
     'page callback'    => 'muamba_lost',
-    'access arguments' => array('lost item'),
+    'access arguments' => array('access content'),
     'type'             => MENU_SUGGESTED_ITEM,
     'file'             => 'muamba.business.inc',
   );
@@ -168,6 +168,12 @@ function muamba_theme($existing, $type, $theme, $path) {
       ),
       'file' => 'muamba.theme.inc',
     ),
+    'muamba_reject_message' => array(
+      'variables' => array(
+        'transaction' => NULL,
+      ),
+      'file' => 'muamba.theme.inc',
+    ),
   );
 }
 
index af15da98ceb01b01edd5cc749c8c4cd5deab8a5e..ac8cdc71046f796bccddbe6758de2fc8b03e1598 100644 (file)
@@ -97,3 +97,10 @@ function theme_muamba_request_message($transaction = NULL) {
 function theme_muamba_accept_message($transaction = NULL) {
   return t('I accept your item request');
 }
+
+/**
+ * Theme callback.
+ */
+function theme_muamba_reject_message($transaction = NULL) {
+  return t('I reject your item request');
+}