Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

User should redirect to common login page after log out

Gulfam
Giga Guru

Hi Experts

I have a requirement regarding portal routing that I need some help.


The requirement is as follows:

If a user belongs to Company "ABC," they should be routed to the Service Portal (SP).
If a user belongs to Company "XYZ," they should be routed to the Customer Service Management (CSM) Portal.
if user logged out then they should redirected to common login page

 

I have made changes to SPEntryPage script include where I set 'this.portal = "/sp/";' in initialize function. and write a following code in getFirstPageURL function.

 

if (user.hasRole("admin") && !redirectURL && !isServicePortalURL)
return;

 

var userId = gs.getUserID();
var userRec = new GlideRecord('sys_user');
userRec.addEncodedQuery('sys_class_name=customer_contact^ORsys_class_name=sys_user^company.nameINBoxeo,Cambrian,Shark Hotels^sys_id=' + userId);
userRec.query();
if (userRec.next()) {
            this.portal = "/csm/";
        } else {
            this.portal = "/sp/";
        }


To redirect them on common login page i have made changes to System Definition - Installation Exits - logout
i have set hard code value it is working fine with normal user but when a contact log out then they redirected to csm login page

 

gs.include("PrototypeServer");
var Logout = Class.create();
Logout.prototype = {

process: function() {
        // var s = request.getParameter('sysparm_goto_url');
        var localLoginMethod = request.getSession().getAttribute("glide.authenticate.local.login.method");
        if (localLoginMethod == "certificate") {
            if (s)
                response.sendRedirect("logout_certificate_complete.do?sysparm_goto_url=" + s);
            else
                response.sendRedirect("logout_certificate_complete.do");
            return true;
        }
        if (s && GlideSecurityUtils.isURLWhiteListedStrict(s))
            response.sendRedirect(s);
        else
            response.sendRedirect("logout_success.do");
        return true;
    }
}
0 REPLIES 0