From f9e6d964870df82afb087ff7bae532c4593122bb Mon Sep 17 00:00:00 2001
From: Jeff Gauthier <code@obstacle.com>
Date: Fri, 4 Mar 2011 14:08:07 -0500
Subject: [PATCH 2/3] Fixes not being to remove authentication from endpoint

---
 services.admin.inc |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/services.admin.inc b/services.admin.inc
index 6c1fca6..03d7460 100644
--- a/services.admin.inc
+++ b/services.admin.inc
@@ -318,11 +318,15 @@ function services_edit_form_endpoint_submit($form, &$form_state) {
   $auth = array();
   if (isset($form_state['values']['authentication'])) {
     foreach (array_keys($form_state['values']['authentication']) as $module) {
-      if (isset($endpoint->authentication[$module])) {
-        $auth[$module] = $endpoint->authentication[$module];
-      }
-      else {
-        $auth[$module] = array();
+      //if module's checkbox is checked, add to empty
+      if ( $module == $form_state['input']['authentication'][$module]) {
+        //if new entry
+        if( array_key_exists($module, $endpoint->authentication) ){
+          $auth[$module] = $endpoint->authentication[$module];
+        }else{
+          $auth[$module] = array();
+          $form_state['redirect'] = 'admin/config/services/services/' . $endpoint->name . '/authentication';
+        }
       }
     }
   }
@@ -337,7 +341,7 @@ function services_edit_form_endpoint_submit($form, &$form_state) {
   else {
     drupal_set_message(t('Your changes have been saved.'));
     services_endpoint_save($endpoint);
-    $form_state['redirect'] = 'admin/config/services/services';
+    if( empty($form_state['redirect']) ) $form_state['redirect'] = 'admin/config/services/services';
   }
 }
 
-- 
1.7.1

