Index: CHANGELOG.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/publicbookings/CHANGELOG.txt,v
retrieving revision 1.6.2.19
diff -u -p -r1.6.2.19 CHANGELOG.txt
--- CHANGELOG.txt	4 Sep 2009 12:00:39 -0000	1.6.2.19
+++ CHANGELOG.txt	10 Sep 2009 11:05:25 -0000
@@ -1,5 +1,7 @@
 // $Id: CHANGELOG.txt,v 1.6.2.19 2009/09/04 12:00:39 tirsales Exp $
 
+feature #572916 by tirsales: Bookings can now (optionally) be se automatically
+  approved after the email-confirmation
 feature #562398 by tirsales: Bookings can now (optionally) conflict with
   unconfirmed bookings
 feature #562398 by AndreaD: Admin-Page now displaying unconfirmed bookings
Index: publicbookings.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/publicbookings/publicbookings.admin.inc,v
retrieving revision 1.15.2.7
diff -u -p -r1.15.2.7 publicbookings.admin.inc
--- publicbookings.admin.inc	4 Sep 2009 12:00:39 -0000	1.15.2.7
+++ publicbookings.admin.inc	10 Sep 2009 10:58:42 -0000
@@ -1,5 +1,5 @@
 <?php
-// $Id: publicbookings.admin.inc,v 1.15.2.7 2009/09/04 12:00:39 tirsales Exp $
+// $Id: publicbookings.admin.inc,v 1.15.2.5 2009/08/26 13:00:14 tirsales Exp $
 /**
  * @file
  * Administrative forms and callbacks.
@@ -479,6 +479,13 @@ function publicbookings_settings_form() 
     '#default_value' => variable_get('bookingsapi_unconfirmed_conflicts',FALSE),
     '#description' => t('If checked, unconfirmed bookings conflict with new Bookings. Please regard that this allows spammers to disallow your booking system by adding unconfirmed bookings in masses. Use only in controlled internal areas!'),
   );
+  
+  $form['advanced']['publicbookings_finalized_after_confirm'] = array(
+    '#type'  => 'checkbox',
+    '#title' => t('Whether confirmed bookings are set to finalized (approved) without an administrator rechecking them - NOT Recommanded.'),
+    '#default_value' => variable_get('publicbookings_finalized_after_confirm',FALSE),
+    '#description' => t('If checked, new bookings are automatically set to finalized ("approved by an administrator") as soon as they are confirmed. Use only in controlled internal areas if you trust your users to not misuse resources.'),
+  );
 
   $form['mail'] = array(
     '#type' => 'fieldset',
@@ -693,6 +700,7 @@ function publicbookings_settings_submit(
   variable_set('publicbookings_show_unconfirmed', (bool) $form_state['values']['publicbookings_show_unconfirmed']);
   variable_set('bookingsapi_unconfirmed_conflicts', (bool) $form_state['values']['bookingsapi_unconfirmed_conflicts']);
   variable_set('bookingsapi_potential_conflicts', (bool) $form_state['values']['bookingsapi_potential_conflicts']);
+  variable_set('publicbookings_finalized_after_confirm', (bool) $form_state['values']['publicbookings_finalized_after_confirm']);
   if ($form_state['values']['publicbookings_mail_reset'] || $form_state['values']['op'] == 'reset' ) {
     if ( $form_state['values']['op'] == 'reset' ) {
       variable_del('publicbookings_enabled');
@@ -704,6 +712,7 @@ function publicbookings_settings_submit(
       variable_del('bookingsapi_potential_conflicts');
       variable_del('bookingsapi_unconfirmed_conflicts');
       variable_del('publicbookings_show_unconfirmed');
+      variable_del('publicbookings_finalized_after_confirm');
     }
     require_once('publicbookings.install');
     publicbookings_variable_init();
Index: publicbookings.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/publicbookings/publicbookings.install,v
retrieving revision 1.5.2.3
diff -u -p -r1.5.2.3 publicbookings.install
--- publicbookings.install	1 Sep 2009 13:36:31 -0000	1.5.2.3
+++ publicbookings.install	10 Sep 2009 10:59:09 -0000
@@ -1,5 +1,5 @@
 <?php
-// $Id: publicbookings.install,v 1.5.2.3 2009/09/01 13:36:31 tirsales Exp $
+// $Id: publicbookings.install,v 1.5.2.2 2009/06/26 15:01:30 tirsales Exp $
 
 /**
  * Implementation of hook_install().
@@ -28,7 +28,7 @@ function publicbookings_uninstall() {
   variable_del('publicbookings_sendmail');
   variable_del('publicbookings_notify');
   variable_del('publicbookings_notify_address');
-  variable_del('publicbookings_show_unconfirmed');
+  variable_del('publicbookings_finalized_after_confirm');
   variable_del('publicbookings_all_body_header');
   variable_del('publicbookings_all_body_footer');
   variable_del('publicbookings_all_subject_prefix');
Index: publicbookings.public.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/publicbookings/publicbookings.public.inc,v
retrieving revision 1.7.2.7
diff -u -p -r1.7.2.7 publicbookings.public.inc
--- publicbookings.public.inc	4 Sep 2009 12:00:39 -0000	1.7.2.7
+++ publicbookings.public.inc	10 Sep 2009 11:02:46 -0000
@@ -1,5 +1,5 @@
 <?php
-// $Id: publicbookings.public.inc,v 1.7.2.7 2009/09/04 12:00:39 tirsales Exp $
+// $Id: publicbookings.public.inc,v 1.7.2.5 2009/06/23 21:14:25 tirsales Exp $
 /**
  * @file
  * Public Bookings - Public interface
@@ -92,11 +92,14 @@ function publicbookings_request_form(&$f
   $form = array_merge(bookingsapi_booking_form($values), publicbookings_clientinfo_form($values));
   $form['basic']['#title'] = t('Booking request');
   // until email confirmation, the status is UNCONFIRMED. afterwards, it becomes PENDING.
+  // unless publicbookings_finalized_after_confirm is set, the its unconfirmed or finalized
   $form['basic']['status'] = array(
     '#type' => 'value',
     '#value' => array_key_exists('status',$values) 
                 && $values['status'] != BOOKINGSAPI_STATUS_UNCONFIRMED 
-                ? BOOKINGSAPI_STATUS_PENDING 
+                ? variable_get('publicbookings_finalized_after_confirm',false) ?
+                    BOOKINGSAPI_STATUS_FINALIZED :
+                    BOOKINGSAPI_STATUS_PENDING 
                 : BOOKINGSAPI_STATUS_UNCONFIRMED,
   );
   if (empty($values['start']) && empty($values['end'])) {
@@ -242,16 +245,26 @@ function publicbookings_confirm($passphr
   if ($client == FALSE) {
     return '<p>'.t('Invalid passphrase. Verify the link in your confirmation email.').'</p>';
   } else {
-    bookingsapi_record_status_change($client, BOOKINGSAPI_STATUS_PENDING);
+    if ( variable_get('publicbookings_finalized_after_confirm',false) ) {
+      bookingsapi_record_status_change($client, BOOKINGSAPI_STATUS_FINALIZED);
+    } else {
+      bookingsapi_record_status_change($client, BOOKINGSAPI_STATUS_PENDING);
+    }
     $values = array(
       'name'=>$client['eventName'],
       'resource_name'=>$client['resourceName'],
       'start'=>$client['start'],
       'end'=>$client['end'],
     );
-    _publicbookings_send_mail('request_pending', $client['email'], $values);
-    return '<p>'.t('Your email has been verified. Your booking request is now pending review by a booking manager.
+    if ( variable_get('publicbookings_finalized_after_confirm',false) ) {
+      _publicbookings_send_mail('request_finalized', $client['email'], $values);
+      return '<p>'.t('Your email has been verified. Your booking request is now finalized.
             You will be informed of any status changes by email').'</p>';
+    } else {
+      _publicbookings_send_mail('request_pending', $client['email'], $values);
+      return '<p>'.t('Your email has been verified. Your booking request is now pending review by a booking manager.
+            You will be informed of any status changes by email').'</p>';
+    }
   }
 }
 
