Forum Discussion

Rkile's avatar
Rkile
Cloud Apps
08-17-2022
Solved

Filter by loginID

I am curious about the options in locking a filter by a userID login?  If a user logs in, is there a way to limit a dashboard to only showing metrics pertaining to that user via the filters without t...
  • harikm007's avatar
    08-17-2022

    Hi Rkile ,

    Below dashboard script will set email ID of logged-in user as a filter and lock the filter:

    dashboard.on('initialized', function (se, ev) {
    
    	filter = se.filters.$$items.find(el=>el.jaql.title == 'User Email')//Update the name of filter
    	
    	defaultValue = prism.user.email
    
    	filter.jaql.filter = {
       	 	"explicit": true,
        	"multiSelection": false,
        	"members": [
            defaultValue
        	]
    	}
    	
    	filter.locked = true
    	
    	var filterOptions = {
    							save: true,
    							refresh: true,
    						}
    	
    	se.filters.update(filter, filterOptions)
    });

    -Hari

     

  • harikm007's avatar
    harikm007
    08-18-2022

    Here is the updated script. Add emails of admin users to excludeList array.

    dashboard.on('initialized', function (se, ev) {
    
    	filter = se.filters.$$items.find(el=>el.jaql.title == 'User Email')//Filter Name
    	
    	excludeList = ['email1', 'email2']
    	
    	if(excludeList.includes(prism.user.email))
    	{
    		filter.jaql.filter = {
    			"explicit": true,
    			"multiSelection": false,
    			"all":true
    		}
    		filter.locked = false
    	}
    		
    	else
    	{
    		filter.jaql.filter = {
    			"explicit": true,
    			"multiSelection": false,
    			"members": [
    			prism.user.email
    			]
    		}
    
    		filter.locked = true	
    	}
    	
    	var filterOptions = {
    							save: true,
    							refresh: true,
    						}
    	
    	se.filters.update(filter, filterOptions)
    });

    -Hari