[freeside-users] Bug report update: "User not found." error in selfservice.cgi, Was: Misconfiguration or bug? [...]

Erreu Gedmon eg at keyway.net
Mon Nov 28 21:28:45 PST 2016


As I was getting ready to work on the "Change Payment Information" bug I decided to revisit the "User not found." bug. After further review, I'm changing my recommendation to deleting the problematic test entirely. I noticed that MyAccount::login already has a test for cust_contact.selfservice_access that seems fully functional making the non-functional test redundant.


Name: "User not found." error in selfservice.cgi
Description: Entering a "Self-Service access without service" email address in selfservice.cgi results in "User not found".
Expected: Successful login.
Reproduce: Login to selfservice with any valid contact email address.
Affects: Selfservice login in Freeside 4.1, 4.2~git-1
Cause: This worked in 4.0, a change was made in 4.1:
Workaround:     Modify /usr/share/perl5/FS/contact.pm
                Change the trailing . to a , in:
                'extra_sql' => " AND ( contact.disabled IS NULL ) ",
                Comment this line:
                #" AND ( contact.selfservice_access = 'Y' )
Recommended fix:
Remove the non-functional test entirely. MyAccount::login already has a test for cust_contact.selfservice_access that seems fully functional making the non-functional newly added test redundant. 

Notes: contact.selfservice_access is deprecated according to /usr/share/perl5/FS/Schema.pm

Pull request: https://github.com/freeside/Freeside/pull/59

Erreu Gedmon

--
"You see persons and things not as they are but as you are."
        -- Anthony De Mello

On 11/04/2016 10:05 AM, Erreu Gedmon wrote:
> Bug report update:
>
> Name: "User not found." error in selfservice.cgi
> Description: Entering a "Self-Service access without service" email address in selfservice.cgi results in "User not found".
> Expected: Successful login.
> Reproduce: Login to selfservice with any valid contact email address.
> Affects: Selfservice login in Freeside 4.1, 4.2~git-1
> Cause: This worked in 4.0, a change was made in 4.1:
> Workaround:     Modify /usr/share/perl5/FS/contact.pm
>                 Change the trailing . to a , in:
>                 'extra_sql' => " AND ( contact.disabled IS NULL ) ",
>                 Comment this line:
>                 #" AND ( contact.selfservice_access = 'Y' )
> Recommended fix:
> In:
> /usr/share/perl5/FS/contact.pm
> Change:
> " AND ( contact.selfservice_access = 'Y' )",
> To:
> " AND ( cust_contact.selfservice_access = 'Y' )",
>
> Notes: contact.selfservice_access is deprecated according to /usr/share/perl5/FS/Schema.pm
>
> Erreu Gedmon
>
> --
> "You see persons and things not as they are but as you are."
>         -- Anthony De Mello
>
> On 09/22/2016 08:11 PM, Erreu Gedmon wrote:
>> Long time fan, first time caller... ;) Great software guys, thank you!
>>
>> I just installed 4.1 and I was unable to get fs_selfservice or
>> ng_selfservice operational until I commented out this line in FS:contact
>> sub by_selfservice_email {
>>   my($class, $email) = @_;
>>
>>   my $contact_email = qsearchs({
>>     'table'     => 'contact_email',
>>     'addl_from' => ' LEFT JOIN contact USING ( contactnum ) ',
>>     'hashref'   => { 'emailaddress' => $email, },
>>     'extra_sql' => " AND ( contact.disabled IS NULL ) ",
>> #                   " AND ( contact.selfservice_access = 'Y' )",
>>   }) or return '';
>>
>>   $contact_email->contact;
>>
>> This line appears to be new on 4.1 as it did not exist on my 4.0 server.
>> The reason it's failing is because the contact.selfservice_access field
>> only contains NULL on my both my 4.0 and 4.1 systems while
>> cust_contact.selfservice_access holds "Y" values. I really tried to do
>> my homework, but couldn't decipher this one.
>>
>> So here are my questions:
>> Should there be data in contact.selfservice_access? (i.e. did I
>> misconfigure my installation?) or is this a bug and FS:contact should be
>> checking cust_contact.selfservice_access instead?
>>
>> Could someone point me to a schema* with a brief description of the two
>> tables contact and cust_contact? (Why are there two contact tables,
>> cust_contact seems to be a subset of contact, maybe a reseller thing?)
>>
>> Unrelated, could I have access to http://www.freeside.biz/mediawiki to
>> update it? I have some very minor updates to the 4.1 Installation
>> documentation.
>>



More information about the freeside-users mailing list