]> err.no Git - sope/commitdiff
added new auth realm method
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Fri, 8 Jul 2005 16:37:20 +0000 (16:37 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Fri, 8 Jul 2005 16:37:20 +0000 (16:37 +0000)
improved take-values debugging

git-svn-id: http://svn.opengroupware.org/SOPE/trunk@874 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/NGObjWeb/ChangeLog
sope-appserver/NGObjWeb/DynamicElements/WOHiddenField.m
sope-appserver/NGObjWeb/DynamicElements/WOInput.m
sope-appserver/NGObjWeb/SoObjects/SoHTTPAuthenticator.h
sope-appserver/NGObjWeb/SoObjects/SoHTTPAuthenticator.m
sope-appserver/NGObjWeb/Version
sope-appserver/NGObjWeb/WOComponent.m

index 6ebafbc8c654942685f22eb4c285299db9f33a74..20644610a3bc25add499fc5db587c5bcc3c47c26 100644 (file)
@@ -1,3 +1,10 @@
+2005-07-08  Helge Hess  <helge.hess@opengroupware.org>
+
+       * SoObjects/SoHTTPAuthenticator.m: deprecated -authRealm, replaced with
+         -authRealmInContext: (v4.5.170)
+
+       * WOComponent.m: added support for WODebugTakeValues (v4.5.169)
+
 2005-07-06  Helge Hess  <helge.hess@opengroupware.org>
 
        * WebDAV/SoObjectWebDAVDispatcher.m: fixed an issue when trying to call
index f50b260b9435f2340cd9e7232cc661e496211eee..e5be4c2c7a69af64cecb597cb78c20f46bb6e942 100644 (file)
@@ -20,7 +20,6 @@
 */
 
 #include "WOInput.h"
-#include "decommon.h"
 
 @interface WOHiddenField : WOInput
 {
 
 @end /* WOHiddenField */
 
+#include "decommon.h"
+
 @implementation WOHiddenField
 
-// responder
+/* generate response */
 
 - (void)appendToResponse:(WOResponse *)_response inContext:(WOContext *)_ctx {
-  if (![[_ctx request] isFromClientComponent]) {
-    BOOL isDisabled;
+  NSString *v;
+  BOOL isDisabled;
+  
+  if ([[_ctx request] isFromClientComponent])
+    return;
 
-    isDisabled = [self->disabled boolValueInComponent:[_ctx component]];
+  isDisabled = [self->disabled boolValueInComponent:[_ctx component]];
     
-    if (isDisabled) {
-      NSString *s;
-
-      s = [self->value stringValueInComponent:[_ctx component]];
-      [_response appendContentHTMLString:s];
-    }
-    else {
-      NSString *v;
-
-      v = [self->value stringValueInComponent:[_ctx component]];
-      
-      WOResponse_AddCString(_response, "<input type=\"hidden\" name=\"");
-      [_response appendContentHTMLAttributeValue:OWFormElementName(self, _ctx)];
-      WOResponse_AddCString(_response, "\" value=\"");
-      [_response appendContentHTMLAttributeValue:v];
-      WOResponse_AddChar(_response, '"');
-      [self appendExtraAttributesToResponse:_response inContext:_ctx];
-      if (self->otherTagString) {
+  if (isDisabled) {
+    // TODO: this is correct for a _hidden_?
+    v = [self->value stringValueInComponent:[_ctx component]];
+    [_response appendContentHTMLString:v];
+    return;
+  }
+  
+  v = [self->value stringValueInComponent:[_ctx component]];
+  
+  WOResponse_AddCString(_response, "<input type=\"hidden\" name=\"");
+  [_response appendContentHTMLAttributeValue:OWFormElementName(self, _ctx)];
+  WOResponse_AddCString(_response, "\" value=\"");
+  [_response appendContentHTMLAttributeValue:v];
+  WOResponse_AddChar(_response, '"');
+  [self appendExtraAttributesToResponse:_response inContext:_ctx];
+  if (self->otherTagString != nil) {
         WOResponse_AddChar(_response, ' ');
         WOResponse_AddString(_response,
                              [self->otherTagString stringValueInComponent:
                                   [_ctx component]]);
-      }
-      WOResponse_AddEmptyCloseParens(_response, _ctx);
-    }
   }
+  WOResponse_AddEmptyCloseParens(_response, _ctx);
 }
 
 @end /* WOHiddenField */
index 075d74499725df752bf7d266addd3336c08cd2de..5d5f1950a7a20c966b31859198b446c80893c4af 100644 (file)
 
 @implementation WOInput
 
-static BOOL takeValueDebugOn = NO;
+static BOOL takeValueDebugOn = YES;
 
 + (int)version {
   return [super version] + 0 /* v2 */;
 }
 
 + (void)initialize {
+  NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
+  
   NSAssert2([super version] == 2,
             @"invalid superclass (%@) version %i !",
             NSStringFromClass([self superclass]), [super version]);
+
+  if ((takeValueDebugOn = [ud boolForKey:@"WODebugTakeValues"]))
+    NSLog(@"WOInput: WODebugTakeValues on.");
 }
 
 - (id)initWithName:(NSString *)_name
index 131ccad58aadf9bd6413c991ae54181ddb18aa84..05be2a8cba09b888b75154b8b58cbc513e885e99 100644 (file)
@@ -48,7 +48,7 @@
 
 /* HTTP basic authentication */
 
-- (NSString *)authRealm;
+- (NSString *)authRealmInContext:(WOContext *)_ctx;
 - (WOResponse *)preprocessCredentialsInContext:(WOContext *)_ctx;
 
 - (NSString *)checkCredentials:(NSString *)_creds;
index 802e4dc51142b55be5d0e7e96c6c76ebe933e736..c7c6de3a2f46d54ebbaebf2ae94d54b41f32e22d 100644 (file)
 /* HTTP basic authentication */
 
 - (NSString *)authRealm {
+  // DEPRECATED
   return [(WOApplication *)[WOApplication application] name];
 }
+- (NSString *)authRealmInContext:(WOContext *)_ctx {
+  return [self authRealm];
+}
 
 /* check for roles */
 
 
   if ([_reason length] == 0) _reason = @"Unauthorized";
   
-  auth = [NSString stringWithFormat:@"basic realm=\"%@\"", [self authRealm]];
+  auth = [NSString stringWithFormat:@"basic realm=\"%@\"", 
+                  [self authRealmInContext:_ctx]];
   
   r = [_ctx response];
   [r setStatus:401 /* unauthorized */];
     NSString   *auth;
     
     r = [_ctx response];
-    auth = [NSString stringWithFormat:@"basic realm=\"%@\"", [self authRealm]];
+    auth = [NSString stringWithFormat:@"basic realm=\"%@\"", 
+                    [self authRealmInContext:_ctx]];
     [r setStatus:[_e httpStatus] /* unauthorized */];
     [r setHeader:auth forKey:@"www-authenticate"];
     return YES;
index ea793f0da742093c2c4a71e42f1010cb7b4d0b40..105404a0c69727c31e813a1f9357d4469ec0436e 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=168
+SUBMINOR_VERSION:=170
 
 # v4.5.122 requires libNGExtensions v4.5.153
 # v4.5.91  requires libNGExtensions v4.5.134
index e6360fcd7e9221e421bdd05a93aaeb4608703083..a6c86efab0451225a2e033855bee9a119174d11f 100644 (file)
@@ -59,6 +59,7 @@ static NGLogger *perfLogger                    = nil;
 static BOOL  debugOn                           = NO;
 static BOOL  debugComponentAwake               = NO;
 static BOOL  debugTemplates                    = NO;
+static BOOL  debugTakeValues                   = NO;
 static BOOL  abortOnAwakeComponentInCtxDealloc = NO;
 static BOOL  abortOnMissingCtx                 = NO;
 static BOOL  wakeupPageOnCreation              = NO;
@@ -87,6 +88,10 @@ static BOOL  wakeupPageOnCreation              = NO;
   perfLogger          = [lm loggerForDefaultKey:@"WOProfileElements"];
   debugOn             = [WOApplication isDebuggingEnabled];
   debugComponentAwake = [ud boolForKey:@"WODebugComponentAwake"];
+  
+  if ((debugTakeValues = [ud boolForKey:@"WODebugTakeValues"]))
+    NSLog(@"WOComponent: WODebugTakeValues on.");
+  
   abortOnAwakeComponentInCtxDealloc = 
     [ud boolForKey:@"WOCoreOnAwakeComponentInCtxDealloc"];
 }
@@ -841,22 +846,30 @@ static inline id _getExtraVar(WOComponent *self, NSString *_key) {
 
 /* OWResponder */
 
-- (BOOL)shouldTakeValuesFromRequest:(WORequest *)_rq inContext:(WOContext*)_c{
+- (BOOL)shouldTakeValuesFromRequest:(WORequest *)_rq inContext:(WOContext*)_c {
+  if (debugTakeValues)
+    [self debugWithFormat:@"%s: default says no.", __PRETTY_FUNCTION__];
   return NO;
 }
 
 - (void)takeValuesFromRequest:(WORequest *)_req inContext:(WOContext *)_ctx {
   WOElement *template = nil;
   
+  if (debugTakeValues) 
+    [self debugWithFormat:@"take values from rq 0x%08X", _req];
+  
   NSAssert1(self->componentFlags.isAwake,
             @"component %@ is not awake !", self);
   
   [self _setContext:_ctx];
   template = [self _woComponentTemplate];
   
-  if (template == nil)
+  if (template == nil) {
+    if (debugTakeValues) 
+      [self debugWithFormat:@"cannot take values, component has no template!"];
     return;
-
+  }
+  
   if (template->takeValues) {
     template->takeValues(template,
                         @selector(takeValuesFromRequest:inContext:),