Customer login error showed in index.pl

Moderator: crythias

Locked
rafaqf
Znuny newbie
Posts: 80
Joined: 30 Mar 2011, 11:10
Znuny Version: 3

Customer login error showed in index.pl

Post by rafaqf »

Hi all the community,

After solving an issue to have only one login page instead of the customer.pl and index.pl login pages, now I have another problem and I'm trying to find a solution but not finding the right way.

Now both Agents and Customers can login from the index.pl, but in the case that a Customer inserts a wrong credential, the page is automatically redirected to the customer.pl and shows there the "login failed" message.

So my question is, how can I avoid the error message to be showed in the customer.pl page, and show it also in the index.pl page??

Thank you very much, any idea is appreciated!
OTRS 3.0.11 and KIX4OTRS on Linux
rafaqf
Znuny newbie
Posts: 80
Joined: 30 Mar 2011, 11:10
Znuny Version: 3

Re: Customer login error showed in index.pl

Post by rafaqf »

Any idea or suggestion?
OTRS 3.0.11 and KIX4OTRS on Linux
CSL
Znuny expert
Posts: 159
Joined: 11 Nov 2011, 19:27
Znuny Version: 3.0.11

Re: Customer login error showed in index.pl

Post by CSL »

You will probably have to make changes to the authentication mechanism in order to do this. The perl modules that handle this are in /opt/otrs/Kernel/System/CustomerAuth

There will be a routine that handles when incorrect credentials are received, and redirects the page to an URL, which will be the Customer.pl page. If you can find it you could try to change this to Index.pl instead.
Backend: OTRS 3.0.11 RedHat Enterprise Linux 6.2, Apache, MySQL with replication
Frontend: OTRS 3.0.11 RedHat Enterprise Linux 6.2 with SELinux, Apache SSL
rafaqf
Znuny newbie
Posts: 80
Joined: 30 Mar 2011, 11:10
Znuny Version: 3

Re: Customer login error showed in index.pl

Post by rafaqf »

CSL wrote:You will probably have to make changes to the authentication mechanism in order to do this. The perl modules that handle this are in /opt/otrs/Kernel/System/CustomerAuth

There will be a routine that handles when incorrect credentials are received, and redirects the page to an URL, which will be the Customer.pl page. If you can find it you could try to change this to Index.pl instead.
Hi CSL, thanks for your suggestion.

Unfortunately, we thought that too, and we couldn't find any kind of URL in the CustomerAuth/DB.pm file.

Do you have any other suggestion of where can be the relation between the login and the URL redirection?

Thank you very much,

Rafa
OTRS 3.0.11 and KIX4OTRS on Linux
CSL
Znuny expert
Posts: 159
Joined: 11 Nov 2011, 19:27
Znuny Version: 3.0.11

Re: Customer login error showed in index.pl

Post by CSL »

I've had a look through the file and can't see anything obvious either I'm afraid - I've tried before to work out OTRS's perl module interfaces and structures and found it equally as hard. With time and dedication (and perl tutorials) it's probably possible to figure out how to do it, but you may have to look beyond the Customer Auth files and into the Agent and Customer interfaces themselves (index.pl, Customer.pl).
Backend: OTRS 3.0.11 RedHat Enterprise Linux 6.2, Apache, MySQL with replication
Frontend: OTRS 3.0.11 RedHat Enterprise Linux 6.2 with SELinux, Apache SSL
crythias
Moderator
Posts: 10170
Joined: 04 May 2010, 18:38
Znuny Version: 5.0.x
Location: SouthWest Florida, USA
Contact:

Re: Customer login error showed in index.pl

Post by crythias »

Customer is failing on customer.pl because that's next response after choosing "I'm a customer" ...
Did you change:
CustomerPanelLoginURL
Defines an alternate login URL for the customer panel..
to point to your index.pl?


It's referenced here:
Kernel/System/Web/InterfaceCustomer.pm:

Code: Select all

        my $User = $AuthObject->Auth( User => $PostUser, Pw => $PostPw );

        # login is vailid
        if ( !$User ) {

            # redirect to alternate login
            if ( $Self->{ConfigObject}->Get('CustomerPanelLoginURL') ) {
                $Param{RequestedURL} = $LayoutObject->LinkEncode( $Param{RequestedURL} );
                print $LayoutObject->Redirect(
                    ExtURL => $Self->{ConfigObject}->Get('CustomerPanelLoginURL')
                        . "?Reason=LoginFailed;RequestedURL=$Param{RequestedURL}",
                );
                return;
            }
            # show normal login
            $LayoutObject->Print(
                Output => \$LayoutObject->CustomerLogin(
                    Title   => 'Login',
                    Message => $Self->{LogObject}->GetLogEntry(
                        Type => 'Info',
                        What => 'Message',
                        )
                        || 'Login failed! Your user name or password was entered incorrectly.',
                    User        => $PostUser,
                    LoginFailed => 1,
                    %Param,
                ),
            );
            return;
        }

"What to change?"
Answered in the first paragraph.
OTRS 6.0.x (private/testing/public) on Linux with MySQL database.
Please edit your signature to include your OTRS version, Operating System, and database type.
Click Subscribe Topic below to get notifications. Consider amending your topic title to include [SOLVED] if it is so.
Need help? Before you ask
Locked