[ic] [interchange] Correct logic of DisplayErrors

David Christensen david at endpoint.com
Mon Sep 11 13:34:37 UTC 2017


Sure; in any case, we should rectify this in one way or the other.  Any strong feelings from anyone here to keep the original intent?

Best,

David

> On Sep 11, 2017, at 2:48 AM, M Heins <mick at dlxmail.com> wrote:
> 
> I can tell you that the original intent was because of the multi-customer
> orientation of the original IC / Minivend. The messages that DisplayErrors
> give can give specific server information that you wouldn't want a random
> user to enable.
> 
> I know that End Point tends to think anyone that is in control of a catalog
> is a server admin, and that may even be mostly true these days. But it was
> far from true in Minivend's early days.
> 
> Quoting David Christensen (david at endpoint.com):
>> Sure, glad to open a discussion here; I personally fail to see the usefulness of this division as documented, plus the code itself had been inconsistent when it came to how it applied the DisplayErrors criteria (some call sites checked either/or and some were both/and).  Whatever the decision ends up being should be made consistent, plus there are probably additional things that can/should be made to respect this directive as well.
>> 
>> Best,
>> 
>> David
>> 
>>> On Sep 8, 2017, at 6:00 PM, Jon Jensen <jon at endpoint.com> wrote:
>>> 
>>> David,
>>> 
>>> I don't mind the logic change personally, but the documentation shows clearly that the old behavior was intended.
>>> 
>>> Unlike many identical pairs of global & catalog directives, this one was designed so that the global one is a universal switch to allow or deny the *ability* to use DisplayErrors in all catalogs:
>>> 
>>> http://www.icdevgroup.org/interchange-doc-5.2.0/frames/icconfig_20.html
>>> http://www.icdevgroup.org/interchange-doc-5.2.0/frames/icconfig_98.html
>>> http://docs.icdevgroup.org/cgi-bin/online/confs/DisplayErrors.html
>>> 
>>> So this probably needs either wider discussion and buy-in along with documentation updates, or to be reverted to match the docs.
>>> 
>>> Jon
>>> 
>>> 
>>> 
>>> On Fri, 8 Sep 2017, David Christensen wrote:
>>> 
>>>> commit 096f9b97470c0106594573dda4114e5adf25e81c
>>>> Author: David Christensen <david at endpoint.com>
>>>> Date:   Fri Sep 8 17:30:23 2017 -0500
>>>> 
>>>>  Correct logic of DisplayErrors
>>>> 
>>>>  Most directives (and other places with this specific directive) use 'or' logic to allow you to
>>>>  define directives in either `interchange.cfg` or `catalog.cfg` to enable a default-off behavior at
>>>>  either the Interchange server level or at the level of a specific catalog.
>>>> 
>>>>  As originally coded, the DisplayErrors directive would have only worked when *both*
>>>>  `interchange.cfg` and `catalog.cfg` had this enabled.
>>>> 
>>>>  Change this so it shows up when either the current catalog or the global config has this set.
>>>> 
>>>>  Since the old default was 'no', someone intended this information to be output, so this is the
>>>>  correct behavior, considering that I only fixed the output of this message in the previous commit.
>>>> 
>>>> lib/Vend/Dispatch.pm |    6 +++---
>>>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>>> ---
>>>> diff --git a/lib/Vend/Dispatch.pm b/lib/Vend/Dispatch.pm
>>>> index eeb463e..cea6640 100644
>>>> --- a/lib/Vend/Dispatch.pm
>>>> +++ b/lib/Vend/Dispatch.pm
>>>> @@ -690,7 +690,7 @@ Sorry, there was an error in processing this form action. Please
>>>> report the error or try again later.
>>>> EOF
>>>> 		$template .= "\n\nError: %s\n"
>>>> -				if $Global::DisplayErrors && $Vend::Cfg->{DisplayErrors}
>>>> +				if $Global::DisplayErrors || $Vend::Cfg->{DisplayErrors}
>>>> 			;
>>>> 		$template = get_locale_message(500, $template, $err);
>>>> 		logError($err);
>>>> @@ -1680,7 +1680,7 @@ EOF
>>>> 			and not ($Vend::admin and ! $::Variable->{MV_TRACK_ADMIN});
>>>> # END TRACK
>>>> 
>>>> -	if($Vend::Cfg->{DisplayErrors} and $Global::DisplayErrors) {
>>>> +	if($Vend::Cfg->{DisplayErrors} or $Global::DisplayErrors) {
>>>> 		$SIG{"__DIE__"} = sub {
>>>> 							my $msg = shift;
>>>> 							put_session() if $Vend::HaveSession;
>>>> @@ -1889,7 +1889,7 @@ Sorry, there was an error in processing this form action. Please
>>>> report the error or try again later.
>>>> EOF
>>>> 		$template .= "\n\nError: %s\n"
>>>> -				if $Global::DisplayErrors && $Vend::Cfg->{DisplayErrors}
>>>> +				if $Global::DisplayErrors || $Vend::Cfg->{DisplayErrors}
>>>> 			;
>>>> 		$template = get_locale_message(500, $template, $err);
>>>> 		logError($err);
>>> 
>>> 
>>> --
>>> Jon Jensen
>>> End Point Corporation
>>> https://www.endpoint.com/
>>> 
>>> _______________________________________________
>>> interchange-users mailing list
>>> interchange-users at icdevgroup.org
>>> http://www.icdevgroup.org/mailman/listinfo/interchange-users
>> 
>> --
>> David Christensen
>> End Point Corporation
>> david at endpoint.com
>> 785-727-1171
>> 
>> 
>> 
> 
> 
> 
>> _______________________________________________
>> interchange-users mailing list
>> interchange-users at icdevgroup.org
>> http://www.icdevgroup.org/mailman/listinfo/interchange-users
> 
> 
> --
> People who would hamper free speech always assume that they're designing
> a world in which only their enemies will have to shut up.
> --Nicholas Christakis
> 
> _______________________________________________
> interchange-users mailing list
> interchange-users at icdevgroup.org
> http://www.icdevgroup.org/mailman/listinfo/interchange-users

--
David Christensen
End Point Corporation
david at endpoint.com
785-727-1171



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP
URL: <http://www.icdevgroup.org/pipermail/interchange-users/attachments/20170911/1ccd7df1/attachment.pgp>


More information about the interchange-users mailing list